On 8/18/21 4:46 AM, stcar...@linux.microsoft.com wrote: > From: Stephen Carlson <stcar...@linux.microsoft.com> > > Adds an implementation of the wait_dat0 MMC operation for the Freescale > eSHDC driver, allowing the driver to continue when the card is ready > rather than waiting for the worst case time on each MMC switch operation. > > Signed-off-by: Stephen Carlson <stcar...@linux.microsoft.com> > --- > drivers/mmc/fsl_esdhc.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c > index 1d98fa65c4..f74289a677 100644 > --- a/drivers/mmc/fsl_esdhc.c > +++ b/drivers/mmc/fsl_esdhc.c > @@ -27,6 +27,7 @@ > #include <dm/device_compat.h> > #include <linux/bitops.h> > #include <linux/delay.h> > +#include <linux/iopoll.h> > #include <linux/dma-mapping.h> > #include <sdhci.h> > > @@ -1145,6 +1146,20 @@ int fsl_esdhc_hs400_prepare_ddr(struct udevice *dev) > return 0; > } > > +static int fsl_esdhc_wait_dat0(struct udevice *dev, int state, > + int timeout_us) > +{ > + int ret;
nitpick, doesn't need to use the ret variable. > + u32 tmp; > + struct fsl_esdhc_priv *priv = dev_get_priv(dev); > + struct fsl_esdhc *regs = priv->esdhc_regs; > + > + ret = readx_poll_timeout(esdhc_read32, ®s->prsstat, tmp, > + !!(tmp & PRSSTAT_DAT0) == !!state, > + timeout_us); > + return ret; return readx_poll_timeout(); ? Other things look good to me. Reviewed-by: Jaehoon Chung <jh80.ch...@samsung.com> Best Regards, Jaehoon Chung > +} > + > static const struct dm_mmc_ops fsl_esdhc_ops = { > .get_cd = fsl_esdhc_get_cd, > .send_cmd = fsl_esdhc_send_cmd, > @@ -1154,6 +1169,7 @@ static const struct dm_mmc_ops fsl_esdhc_ops = { > #endif > .reinit = fsl_esdhc_reinit, > .hs400_prepare_ddr = fsl_esdhc_hs400_prepare_ddr, > + .wait_dat0 = fsl_esdhc_wait_dat0, > }; > > static const struct udevice_id fsl_esdhc_ids[] = { >