[U-Boot] [PATCH 1/8] dm: mmc: Don't re-init when accessing environment
Simon Glass
sjg at chromium.org
Sat Apr 29 00:27:02 UTC 2017
Hi Jean-Jacques,
On 24 April 2017 at 02:55, Jean-Jacques Hiblot <jjhiblot at ti.com> wrote:
> Hi Simon,
>
> On 24/04/2017 04:02, Simon Glass wrote:
>>
>> With driver model MMC is probed automatically when needed. We should not
>> re-init MMC each time.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> common/env_mmc.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/common/env_mmc.c b/common/env_mmc.c
>> index a5d14d448c..1611886e22 100644
>> --- a/common/env_mmc.c
>> +++ b/common/env_mmc.c
>> @@ -98,9 +98,10 @@ static const char *init_mmc_for_env(struct mmc *mmc)
>> if (!mmc)
>> return "!No MMC card found";
>> +#ifndef CONFIG_BLK
>> if (mmc_init(mmc))
>> return "!MMC init failed";
>> -
>> +#endif
>
> I'm not convinced by this. mmc_init() is the starting point of the MMC
> device initialization process and it must be called somehow before accessing
> the device and most probe() functions do not call mmc_init().
> The sandbox driver does it, but I'm not sure it's the right way because the
> MMC device initialization process takes a long time. I'd rather have the
> device initialized only when it's accessed for the first time not when it's
> probed (especially in the SPL)
Yes I would like that too.
One option is to add an init() method to mmc and call that when the
block device is probed.
>
> Jean-Jacques
>
>
>> if (mmc_set_env_part(mmc))
>> return "!MMC partition switch failed";
>>
>
>
Regards,
Simon
More information about the U-Boot
mailing list