On Thu, 4 May 2023 at 13:19, <haibo.chen@xxxxxxx> wrote: > > From: Haibo Chen <haibo.chen@xxxxxxx> > > After commit 1ed5c3b22fc7 ("mmc: sdhci-esdhc-imx: Propagate > ESDHC_FLAG_HS400* only on 8bit bus"), the property "no-mmc-hs400" > from device tree file do not work any more. > This patch reorder the code, which can avoid the warning message > "drop HS400 support since no 8-bit bus" and also make the property > "no-mmc-hs400" from dts file works. > > Fixes: 1ed5c3b22fc7 ("mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus") > Signed-off-by: Haibo Chen <haibo.chen@xxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx Applied for fixes, thanks! Kind regards Uffe > --- > drivers/mmc/host/sdhci-esdhc-imx.c | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c > index d7c0c0b9e26c..eebf94604a7f 100644 > --- a/drivers/mmc/host/sdhci-esdhc-imx.c > +++ b/drivers/mmc/host/sdhci-esdhc-imx.c > @@ -1634,6 +1634,10 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev, > if (ret) > return ret; > > + /* HS400/HS400ES require 8 bit bus */ > + if (!(host->mmc->caps & MMC_CAP_8_BIT_DATA)) > + host->mmc->caps2 &= ~(MMC_CAP2_HS400 | MMC_CAP2_HS400_ES); > + > if (mmc_gpio_get_cd(host->mmc) >= 0) > host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION; > > @@ -1724,10 +1728,6 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) > host->mmc_host_ops.init_card = usdhc_init_card; > } > > - err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); > - if (err) > - goto disable_ahb_clk; > - > if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) > sdhci_esdhc_ops.platform_execute_tuning = > esdhc_executing_tuning; > @@ -1735,15 +1735,13 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) > if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536) > host->quirks |= SDHCI_QUIRK_BROKEN_ADMA; > > - if (host->mmc->caps & MMC_CAP_8_BIT_DATA && > - imx_data->socdata->flags & ESDHC_FLAG_HS400) > + if (imx_data->socdata->flags & ESDHC_FLAG_HS400) > host->mmc->caps2 |= MMC_CAP2_HS400; > > if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23) > host->quirks2 |= SDHCI_QUIRK2_ACMD23_BROKEN; > > - if (host->mmc->caps & MMC_CAP_8_BIT_DATA && > - imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { > + if (imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { > host->mmc->caps2 |= MMC_CAP2_HS400_ES; > host->mmc_host_ops.hs400_enhanced_strobe = > esdhc_hs400_enhanced_strobe; > @@ -1765,6 +1763,10 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) > goto disable_ahb_clk; > } > > + err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); > + if (err) > + goto disable_ahb_clk; > + > sdhci_esdhc_imx_hwinit(host); > > err = sdhci_add_host(host); > -- > 2.34.1 >