Message ID | 20190724075102.26679-1-patrice.chotard@st.com |
---|---|
State | Accepted |
Commit | 2e01fcf17c221cba2b54d0f238a39f12b0ef361a |
Delegated to: | Patrice Chotard |
Headers | show |
Series | [U-Boot,v2] mmc: sti_sdhci: Fix sdhci_setup_cfg() call. | expand |
On 2019/7/24 下午3:51, Patrice Chotard wrote: > host->mmc, host->mmc->dev and host->mmc->priv must be set > before calling sdhci_setup_cfg() to avoid hang during mmc > initialization. > > Thanks to commit 3d296365e4e8 > ("mmc: sdhci: Add support for sdhci-caps-mask") which put > this issue into evidence. > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > --- > > Changes in v2: > - move host->mmc->priv initialization before sdhci_setup_cfg() call > > drivers/mmc/sti_sdhci.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c > index 8ed47e113d..d6c75ea601 100644 > --- a/drivers/mmc/sti_sdhci.c > +++ b/drivers/mmc/sti_sdhci.c > @@ -97,14 +97,14 @@ static int sti_sdhci_probe(struct udevice *dev) > SDHCI_QUIRK_NO_HISPD_BIT; > > host->host_caps = MMC_MODE_DDR_52MHz; > + host->mmc = &plat->mmc; > + host->mmc->dev = dev; > + host->mmc->priv = host; > > ret = sdhci_setup_cfg(&plat->cfg, host, 50000000, 400000); > if (ret) > return ret; > > - host->mmc = &plat->mmc; > - host->mmc->priv = host; > - host->mmc->dev = dev; > upriv->mmc = host->mmc; Same issue like rockchip_sdhci.c. Reviewed-by: Kever Yang <kever.yang@rock-chips.com> Thanks, - Kever > > return sdhci_probe(dev);
On 7/24/19 9:51 AM, Patrice Chotard wrote: > host->mmc, host->mmc->dev and host->mmc->priv must be set > before calling sdhci_setup_cfg() to avoid hang during mmc > initialization. > > Thanks to commit 3d296365e4e8 > ("mmc: sdhci: Add support for sdhci-caps-mask") which put > this issue into evidence. > > Signed-off-by: Patrice Chotard <patrice.chotard@st.com> > --- > > Changes in v2: > - move host->mmc->priv initialization before sdhci_setup_cfg() call > > drivers/mmc/sti_sdhci.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c > index 8ed47e113d..d6c75ea601 100644 > --- a/drivers/mmc/sti_sdhci.c > +++ b/drivers/mmc/sti_sdhci.c > @@ -97,14 +97,14 @@ static int sti_sdhci_probe(struct udevice *dev) > SDHCI_QUIRK_NO_HISPD_BIT; > > host->host_caps = MMC_MODE_DDR_52MHz; > + host->mmc = &plat->mmc; > + host->mmc->dev = dev; > + host->mmc->priv = host; > > ret = sdhci_setup_cfg(&plat->cfg, host, 50000000, 400000); > if (ret) > return ret; > > - host->mmc = &plat->mmc; > - host->mmc->priv = host; > - host->mmc->dev = dev; > upriv->mmc = host->mmc; > > return sdhci_probe(dev); Applied on STM32 tree Thanks
diff --git a/drivers/mmc/sti_sdhci.c b/drivers/mmc/sti_sdhci.c index 8ed47e113d..d6c75ea601 100644 --- a/drivers/mmc/sti_sdhci.c +++ b/drivers/mmc/sti_sdhci.c @@ -97,14 +97,14 @@ static int sti_sdhci_probe(struct udevice *dev) SDHCI_QUIRK_NO_HISPD_BIT; host->host_caps = MMC_MODE_DDR_52MHz; + host->mmc = &plat->mmc; + host->mmc->dev = dev; + host->mmc->priv = host; ret = sdhci_setup_cfg(&plat->cfg, host, 50000000, 400000); if (ret) return ret; - host->mmc = &plat->mmc; - host->mmc->priv = host; - host->mmc->dev = dev; upriv->mmc = host->mmc; return sdhci_probe(dev);
host->mmc, host->mmc->dev and host->mmc->priv must be set before calling sdhci_setup_cfg() to avoid hang during mmc initialization. Thanks to commit 3d296365e4e8 ("mmc: sdhci: Add support for sdhci-caps-mask") which put this issue into evidence. Signed-off-by: Patrice Chotard <patrice.chotard@st.com> --- Changes in v2: - move host->mmc->priv initialization before sdhci_setup_cfg() call drivers/mmc/sti_sdhci.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)