On 25/04/18 15:09, Kishon Vijay Abraham I wrote: > 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@xxxxxx> > Acked-by: Tony Lindgren <tony@xxxxxxxxxxx> Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > --- > drivers/mmc/host/sdhci-omap.c | 17 ++++++++++++----- > 1 file changed, 12 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-omap.c b/drivers/mmc/host/sdhci-omap.c > index 1456abd5eeb9..9bb53702e0e5 100644 > --- a/drivers/mmc/host/sdhci-omap.c > +++ b/drivers/mmc/host/sdhci-omap.c > @@ -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); > > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html