From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Fri, 28 Apr 2017 18:27:02 -0600 Subject: [U-Boot] [PATCH 1/8] dm: mmc: Don't re-init when accessing environment In-Reply-To: <64fb226f-daf5-29c8-a51a-dbd767fa3c47@ti.com> References: <20170424020211.20690-1-sjg@chromium.org> <20170424020211.20690-2-sjg@chromium.org> <64fb226f-daf5-29c8-a51a-dbd767fa3c47@ti.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Jean-Jacques, On 24 April 2017 at 02:55, Jean-Jacques Hiblot 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 >> --- >> >> 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