Hi, On 28 April 2017 at 18:27, Simon Glass <s...@chromium.org> wrote: > Hi Jean-Jacques, > > On 24 April 2017 at 02:55, Jean-Jacques Hiblot <jjhib...@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 <s...@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.
Do you think that would work? I can try it out in the next version perhaps. Then we have: mmc device probe - very fast, just sets up clocks, etc. blk device probe - slow, tries to read card, partition table, etc. > >> >> Jean-Jacques >> >> >>> if (mmc_set_env_part(mmc)) >>> return "!MMC partition switch failed"; Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot