> -----Original Message----- > From: Yinbo Zhu <yinbo....@nxp.com> > Sent: Wednesday, May 15, 2019 3:38 PM > To: York Sun <york....@nxp.com>; u-boot@lists.denx.de; Vabhav Sharma > <vabhav.sha...@nxp.com> > Cc: Yinbo Zhu <yinbo....@nxp.com>; Xiaobo Xie <xiaobo....@nxp.com>; Jiafei > Pan <jiafei....@nxp.com>; Y.b. Lu <yangbo...@nxp.com>; Jagdish Gediya > <jagdish.ged...@nxp.com>; Prabhakar Kushwaha > <prabhakar.kushw...@nxp.com>; Andy Tang <andy.t...@nxp.com> > Subject: [PATCH v4 2/2] mmc: fsl_esdhc: fix probe issue without CONFIG_BLK > enabled > > From: Yangbo Lu <yangbo...@nxp.com> > > u-boot is trying to make CONFIG_BLK as a hard requirement for DM_MMC. But > now it's still not. > > config BLK > bool "Support block devices" > depends on DM > default y if DM_MMC > > When fsl_esdhc driver was reworked for DM_MMC support, DM_MMC without > CONFIG_BLK enabled wasn't considered. This patch is to fix probe issue without > CONFIG_BLK enabled. > > Signed-off-by: Yangbo Lu <yangbo...@nxp.com> > Signed-off-by: Yinbo Zhu <yinbo....@nxp.com> > --- > Change in v4: > Update the Copyright >
Adding complete history > drivers/mmc/fsl_esdhc.c | 30 +++++++++++++++++++++++++++++- > 1 file changed, 29 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index > 9e34557d16..53277c9216 100644 > --- a/drivers/mmc/fsl_esdhc.c > +++ b/drivers/mmc/fsl_esdhc.c > @@ -1,6 +1,6 @@ > // SPDX-License-Identifier: GPL-2.0+ > /* > - * Copyright 2007, 2010-2011 Freescale Semiconductor, Inc > + * Copyright 2007, 2010-2020 Freescale Semiconductor, Inc > * Andy Fleming > * Freescale was there till 2016. After that it is NXP. So add NXP copyright. Please resend this patch. > * Based vaguely on the pxa mmc code: > @@ -25,6 +25,10 @@ > #include <asm-generic/gpio.h> > #include <dm/pinctrl.h> > > +#if !CONFIG_IS_ENABLED(BLK) > +#include "mmc_private.h" > +#endif > + > DECLARE_GLOBAL_DATA_PTR; > > #define SDHCI_IRQ_EN_BITS (IRQSTATEN_CC | IRQSTATEN_TC | \ > @@ -34,6 +38,7 @@ DECLARE_GLOBAL_DATA_PTR; > IRQSTATEN_DEBE | IRQSTATEN_BRR | > IRQSTATEN_BWR | \ > IRQSTATEN_DINT) > #define MAX_TUNING_LOOP 40 > +#define ESDHC_DRIVER_STAGE_VALUE 0xffffffff > > struct fsl_esdhc { > uint dsaddr; /* SDMA system address register */ > @@ -1448,6 +1453,9 @@ static int fsl_esdhc_probe(struct udevice *dev) > fdt_addr_t addr; > unsigned int val; > struct mmc *mmc; > +#if !CONFIG_IS_ENABLED(BLK) > + struct blk_desc *bdesc; > +#endif > int ret; > > addr = dev_read_addr(dev); > @@ -1576,6 +1584,26 @@ static int fsl_esdhc_probe(struct udevice *dev) > mmc = &plat->mmc; > mmc->cfg = &plat->cfg; > mmc->dev = dev; > +#if !CONFIG_IS_ENABLED(BLK) > + mmc->priv = priv; > + > + /* Setup dsr related values */ > + mmc->dsr_imp = 0; > + mmc->dsr = ESDHC_DRIVER_STAGE_VALUE; > + /* Setup the universal parts of the block interface just once */ > + bdesc = mmc_get_blk_desc(mmc); > + bdesc->if_type = IF_TYPE_MMC; > + bdesc->removable = 1; > + bdesc->devnum = mmc_get_next_devnum(); > + bdesc->block_read = mmc_bread; > + bdesc->block_write = mmc_bwrite; > + bdesc->block_erase = mmc_berase; > + > + /* setup initial part type */ > + bdesc->part_type = mmc->cfg->part_type; > + mmc_list_add(mmc); > +#endif > + > upriv->mmc = mmc; > > return esdhc_init_common(priv, mmc); @ Peng. Can you please ack on this patch --pk _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot