[RFC v2 05/20] mmc: call device_probe() after scanning

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Dec 18 10:48:25 CET 2021


On 12/10/21 07:49, AKASHI Takahiro wrote:
> Every time a mmc bus/port is scanned and a new device is detected,
> we want to call device_probe() as it will give us a chance to run
> additional post-processings for some purposes.
>
> In particular, support for creating partitions on a device will be added.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
> ---
>   drivers/mmc/mmc-uclass.c | 13 +++++++++++++
>   1 file changed, 13 insertions(+)
>
> diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c
> index 3ee92d03ca23..6c907b65fde7 100644
> --- a/drivers/mmc/mmc-uclass.c
> +++ b/drivers/mmc/mmc-uclass.c
> @@ -418,6 +418,7 @@ int mmc_bind(struct udevice *dev, struct mmc *mmc, const struct mmc_config *cfg)
>   	bdesc->part_type = cfg->part_type;
>   	mmc->dev = dev;
>   	mmc->user_speed_mode = MMC_MODES_END;
> +
>   	return 0;
>   }
>
> @@ -467,6 +468,18 @@ static int mmc_blk_probe(struct udevice *dev)
>   		return ret;
>   	}
>
> +	ret = device_probe(dev);
> +	if (ret) {
> +		debug("Can't probe\n");
> +
> +		if (IS_ENABLED(CONFIG_MMC_UHS_SUPPORT) ||
> +		    IS_ENABLED(CONFIG_MMC_HS200_SUPPORT) ||
> +		    IS_ENABLED(CONFIG_MMC_HS400_SUPPORT))

Not even sandbox_defconfig builds with your patch:

drivers/mmc/mmc-uclass.c: In function ‘mmc_blk_probe’:
drivers/mmc/mmc-uclass.c:478:25: warning: implicit declaration of
function ‘mmc_deinit’; did you mean ‘mmc_reinit’?
[-Wimplicit-function-declaration]
   478 |                         mmc_deinit(mmc);
       |                         ^~~~~~~~~~
       |                         mmc_reinit

Please, have a look at include/mmc.h:

790 #if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || \
791     CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || \
792     CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)
793 int mmc_deinit(struct mmc *mmc);
794 #endif

mmc_deinit() may not be defined.

We should fix include/mmc.h first.

Best regards

Heinrich

> +			mmc_deinit(mmc);
> +
> +		return ret;
> +	}
> +
>   	return 0;
>   }
>



More information about the U-Boot mailing list