From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Jacques Hiblot Date: Mon, 24 Apr 2017 10:55:12 +0200 Subject: [U-Boot] [PATCH 1/8] dm: mmc: Don't re-init when accessing environment In-Reply-To: <20170424020211.20690-2-sjg@chromium.org> References: <20170424020211.20690-1-sjg@chromium.org> <20170424020211.20690-2-sjg@chromium.org> Message-ID: <64fb226f-daf5-29c8-a51a-dbd767fa3c47@ti.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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) Jean-Jacques > if (mmc_set_env_part(mmc)) > return "!MMC partition switch failed"; >