diff mbox series

[RESEND,v3,01/12] mmc: fsl_esdhc_imx: make BLK as hard requirement of DM_MMC

Message ID 17862939-c7b1-310e-d98e-ce68f776ee40@seco.com
State Superseded
Delegated to: Peng Fan
Headers show
Series [RESEND,v3,01/12] mmc: fsl_esdhc_imx: make BLK as hard requirement of DM_MMC | expand

Commit Message

Sean Anderson Jan. 4, 2022, 4:16 p.m. UTC
[ fsl_esdhc commit 41dec2fe99512e941261594f522b2e7d485c314b ]

U-boot prefers DM_MMC + BLK for MMC. Now eSDHC driver has already
support it, so let's force to use it.

- Drop non-BLK support for DM_MMC introduced by below patch.
   66fa035 mmc: fsl_esdhc: fix probe issue without CONFIG_BLK enabled

- Support only DM_MMC + BLK (assuming BLK is always enabled for DM_MMC).

- Use DM_MMC instead of BLK for conditional compile.

Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
Signed-off-by: Sean Anderson <sean.anderson@seco.com>
---

Changes in v3:
- Drop Kconfig BLK dependency

  drivers/mmc/fsl_esdhc_imx.c | 33 +--------------------------------
  1 file changed, 1 insertion(+), 32 deletions(-)

  				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 */
@@ -157,7 +152,7 @@ struct fsl_esdhc_priv {
  	unsigned int clock;
  	unsigned int mode;
  	unsigned int bus_width;
-#if !CONFIG_IS_ENABLED(BLK)
+#if !CONFIG_IS_ENABLED(DM_MMC)
  	struct mmc *mmc;
  #endif
  	struct udevice *dev;
@@ -1510,9 +1505,6 @@ static int fsl_esdhc_probe(struct udevice *dev)
  	struct esdhc_soc_data *data =
  		(struct esdhc_soc_data *)dev_get_driver_data(dev);
  	struct mmc *mmc;
-#if !CONFIG_IS_ENABLED(BLK)
-	struct blk_desc *bdesc;
-#endif
  	int ret;
   #if CONFIG_IS_ENABLED(OF_PLATDATA)
@@ -1611,25 +1603,6 @@ 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;
  @@ -1740,14 +1713,12 @@ static const struct udevice_id fsl_esdhc_ids[] = {
  	{ /* sentinel */ }
  };
  -#if CONFIG_IS_ENABLED(BLK)
  static int fsl_esdhc_bind(struct udevice *dev)
  {
  	struct fsl_esdhc_plat *plat = dev_get_plat(dev);
   	return mmc_bind(dev, &plat->mmc, &plat->cfg);
  }
-#endif
   U_BOOT_DRIVER(fsl_esdhc) = {
  	.name	= "fsl_esdhc",
@@ -1755,9 +1726,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
  	.of_match = fsl_esdhc_ids,
  	.of_to_plat = fsl_esdhc_of_to_plat,
  	.ops	= &fsl_esdhc_ops,
-#if CONFIG_IS_ENABLED(BLK)
  	.bind	= fsl_esdhc_bind,
-#endif
  	.probe	= fsl_esdhc_probe,
  	.plat_auto	= sizeof(struct fsl_esdhc_plat),
  	.priv_auto	= sizeof(struct fsl_esdhc_priv),

Comments

Jaehoon Chung Jan. 11, 2022, 1:14 a.m. UTC | #1
Dear Sean,

On 1/5/22 1:16 AM, Sean Anderson wrote:
> [ fsl_esdhc commit 41dec2fe99512e941261594f522b2e7d485c314b ]
> 
> U-boot prefers DM_MMC + BLK for MMC. Now eSDHC driver has already
> support it, so let's force to use it.
> 
> - Drop non-BLK support for DM_MMC introduced by below patch.
>   66fa035 mmc: fsl_esdhc: fix probe issue without CONFIG_BLK enabled
> 
> - Support only DM_MMC + BLK (assuming BLK is always enabled for DM_MMC).
> 
> - Use DM_MMC instead of BLK for conditional compile.


Thanks for resend this. But it can't apply your patch from patchwork directly.
https://patchwork.ozlabs.org/project/uboot/patch/17862939-c7b1-310e-d98e-ce68f776ee40@seco.com/

If you're ok, I will apply after modified your patch.

Best Regards,
Jaehoon Chung

> 
> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
> ---
> 
> Changes in v3:
> - Drop Kconfig BLK dependency
> 
>  drivers/mmc/fsl_esdhc_imx.c | 33 +--------------------------------
>  1 file changed, 1 insertion(+), 32 deletions(-)
> 
> diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
> index 4c06361bee..85cd72a796 100644
> --- a/drivers/mmc/fsl_esdhc_imx.c
> +++ b/drivers/mmc/fsl_esdhc_imx.c
> @@ -39,10 +39,6 @@
>  #include <dm/ofnode.h>
>  #include <linux/iopoll.h>
>  -#if !CONFIG_IS_ENABLED(BLK)
> -#include "mmc_private.h"
> -#endif
> -
>  #ifndef ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE
>  #ifdef CONFIG_FSL_USDHC
>  #define ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE    1
> @@ -58,7 +54,6 @@ 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 */
> @@ -157,7 +152,7 @@ struct fsl_esdhc_priv {
>      unsigned int clock;
>      unsigned int mode;
>      unsigned int bus_width;
> -#if !CONFIG_IS_ENABLED(BLK)
> +#if !CONFIG_IS_ENABLED(DM_MMC)
>      struct mmc *mmc;
>  #endif
>      struct udevice *dev;
> @@ -1510,9 +1505,6 @@ static int fsl_esdhc_probe(struct udevice *dev)
>      struct esdhc_soc_data *data =
>          (struct esdhc_soc_data *)dev_get_driver_data(dev);
>      struct mmc *mmc;
> -#if !CONFIG_IS_ENABLED(BLK)
> -    struct blk_desc *bdesc;
> -#endif
>      int ret;
>   #if CONFIG_IS_ENABLED(OF_PLATDATA)
> @@ -1611,25 +1603,6 @@ 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;
>  @@ -1740,14 +1713,12 @@ static const struct udevice_id fsl_esdhc_ids[] = {
>      { /* sentinel */ }
>  };
>  -#if CONFIG_IS_ENABLED(BLK)
>  static int fsl_esdhc_bind(struct udevice *dev)
>  {
>      struct fsl_esdhc_plat *plat = dev_get_plat(dev);
>       return mmc_bind(dev, &plat->mmc, &plat->cfg);
>  }
> -#endif
>   U_BOOT_DRIVER(fsl_esdhc) = {
>      .name    = "fsl_esdhc",
> @@ -1755,9 +1726,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
>      .of_match = fsl_esdhc_ids,
>      .of_to_plat = fsl_esdhc_of_to_plat,
>      .ops    = &fsl_esdhc_ops,
> -#if CONFIG_IS_ENABLED(BLK)
>      .bind    = fsl_esdhc_bind,
> -#endif
>      .probe    = fsl_esdhc_probe,
>      .plat_auto    = sizeof(struct fsl_esdhc_plat),
>      .priv_auto    = sizeof(struct fsl_esdhc_priv),
Sean Anderson Jan. 11, 2022, 4:15 p.m. UTC | #2
On 1/10/22 8:14 PM, Jaehoon Chung wrote:
> Dear Sean,
> 
> On 1/5/22 1:16 AM, Sean Anderson wrote:
>> [ fsl_esdhc commit 41dec2fe99512e941261594f522b2e7d485c314b ]
>> 
>> U-boot prefers DM_MMC + BLK for MMC. Now eSDHC driver has already
>> support it, so let's force to use it.
>> 
>> - Drop non-BLK support for DM_MMC introduced by below patch.
>>   66fa035 mmc: fsl_esdhc: fix probe issue without CONFIG_BLK enabled
>> 
>> - Support only DM_MMC + BLK (assuming BLK is always enabled for DM_MMC).
>> 
>> - Use DM_MMC instead of BLK for conditional compile.
> 
> 
> Thanks for resend this. But it can't apply your patch from patchwork directly.
> https://patchwork.ozlabs.org/project/uboot/patch/17862939-c7b1-310e-d98e-ce68f776ee40@seco.com/
> 
> If you're ok, I will apply after modified your patch.

That's fine; looks like it got mangled a bit by my mail client.

--Sean

> 
>> 
>> Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
>> Signed-off-by: Sean Anderson <sean.anderson@seco.com>
>> ---
>> 
>> Changes in v3:
>> - Drop Kconfig BLK dependency
>> 
>>  drivers/mmc/fsl_esdhc_imx.c | 33 +--------------------------------
>>  1 file changed, 1 insertion(+), 32 deletions(-)
>> 
>> diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
>> index 4c06361bee..85cd72a796 100644
>> --- a/drivers/mmc/fsl_esdhc_imx.c
>> +++ b/drivers/mmc/fsl_esdhc_imx.c
>> @@ -39,10 +39,6 @@
>>  #include <dm/ofnode.h>
>>  #include <linux/iopoll.h>
>>  -#if !CONFIG_IS_ENABLED(BLK)
>> -#include "mmc_private.h"
>> -#endif
>> -
>>  #ifndef ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE
>>  #ifdef CONFIG_FSL_USDHC
>>  #define ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE    1
>> @@ -58,7 +54,6 @@ 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 */
>> @@ -157,7 +152,7 @@ struct fsl_esdhc_priv {
>>      unsigned int clock;
>>      unsigned int mode;
>>      unsigned int bus_width;
>> -#if !CONFIG_IS_ENABLED(BLK)
>> +#if !CONFIG_IS_ENABLED(DM_MMC)
>>      struct mmc *mmc;
>>  #endif
>>      struct udevice *dev;
>> @@ -1510,9 +1505,6 @@ static int fsl_esdhc_probe(struct udevice *dev)
>>      struct esdhc_soc_data *data =
>>          (struct esdhc_soc_data *)dev_get_driver_data(dev);
>>      struct mmc *mmc;
>> -#if !CONFIG_IS_ENABLED(BLK)
>> -    struct blk_desc *bdesc;
>> -#endif
>>      int ret;
>>   #if CONFIG_IS_ENABLED(OF_PLATDATA)
>> @@ -1611,25 +1603,6 @@ 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;
>>  @@ -1740,14 +1713,12 @@ static const struct udevice_id fsl_esdhc_ids[] = {
>>      { /* sentinel */ }
>>  };
>>  -#if CONFIG_IS_ENABLED(BLK)
>>  static int fsl_esdhc_bind(struct udevice *dev)
>>  {
>>      struct fsl_esdhc_plat *plat = dev_get_plat(dev);
>>       return mmc_bind(dev, &plat->mmc, &plat->cfg);
>>  }
>> -#endif
>>   U_BOOT_DRIVER(fsl_esdhc) = {
>>      .name    = "fsl_esdhc",
>> @@ -1755,9 +1726,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
>>      .of_match = fsl_esdhc_ids,
>>      .of_to_plat = fsl_esdhc_of_to_plat,
>>      .ops    = &fsl_esdhc_ops,
>> -#if CONFIG_IS_ENABLED(BLK)
>>      .bind    = fsl_esdhc_bind,
>> -#endif
>>      .probe    = fsl_esdhc_probe,
>>      .plat_auto    = sizeof(struct fsl_esdhc_plat),
>>      .priv_auto    = sizeof(struct fsl_esdhc_priv),
>
diff mbox series

Patch

diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
index 4c06361bee..85cd72a796 100644
--- a/drivers/mmc/fsl_esdhc_imx.c
+++ b/drivers/mmc/fsl_esdhc_imx.c
@@ -39,10 +39,6 @@ 
  #include <dm/ofnode.h>
  #include <linux/iopoll.h>
  -#if !CONFIG_IS_ENABLED(BLK)
-#include "mmc_private.h"
-#endif
-
  #ifndef ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE
  #ifdef CONFIG_FSL_USDHC
  #define ESDHCI_QUIRK_BROKEN_TIMEOUT_VALUE	1
@@ -58,7 +54,6 @@  DECLARE_GLOBAL_DATA_PTR;