mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 15:11:31 +00:00
mmc: sdhci-omap: Fix when capabilities are obtained from SDHCI_CAPABILITIES reg
sdhci_omap_config_iodelay_pinctrl_state() requires caps and caps2 to be initialized (speed mode capabilities like UHS/HS200) before it is invoked. While mmc_of_parse() initializes caps/caps2 if capabilities is populated in device tree, it will remain uninitialized for capabilities obtained from SDHCI_CAPABILITIES register. Fix sdhci_omap_config_iodelay_pinctrl_state() to be used even while getting the capabilities from SDHCI_CAPABILITIES register by invoking sdhci_setup_host() before sdhci_omap_config_iodelay_pinctrl_state(). Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
6da6c0db53
commit
0ec4ee3c9b
@ -916,10 +916,6 @@ static int sdhci_omap_probe(struct platform_device *pdev)
|
||||
goto err_put_sync;
|
||||
}
|
||||
|
||||
ret = sdhci_omap_config_iodelay_pinctrl_state(omap_host);
|
||||
if (ret)
|
||||
goto err_put_sync;
|
||||
|
||||
host->mmc_host_ops.get_ro = mmc_gpio_get_ro;
|
||||
host->mmc_host_ops.start_signal_voltage_switch =
|
||||
sdhci_omap_start_signal_voltage_switch;
|
||||
@ -930,12 +926,23 @@ static int sdhci_omap_probe(struct platform_device *pdev)
|
||||
sdhci_read_caps(host);
|
||||
host->caps |= SDHCI_CAN_DO_ADMA2;
|
||||
|
||||
ret = sdhci_add_host(host);
|
||||
ret = sdhci_setup_host(host);
|
||||
if (ret)
|
||||
goto err_put_sync;
|
||||
|
||||
ret = sdhci_omap_config_iodelay_pinctrl_state(omap_host);
|
||||
if (ret)
|
||||
goto err_cleanup_host;
|
||||
|
||||
ret = __sdhci_add_host(host);
|
||||
if (ret)
|
||||
goto err_cleanup_host;
|
||||
|
||||
return 0;
|
||||
|
||||
err_cleanup_host:
|
||||
sdhci_cleanup_host(host);
|
||||
|
||||
err_put_sync:
|
||||
pm_runtime_put_sync(dev);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user