From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miquel Raynal Date: Mon, 3 Sep 2018 09:02:52 +0200 Subject: [U-Boot] [PATCH v7 11/13] cmd: mtdparts: try to probe the MTD devices as a fallback In-Reply-To: <920e860b-5fef-1d56-085e-8a90e1ae501b@denx.de> References: <20180831145741.17350-1-miquel.raynal@bootlin.com> <20180831145741.17350-12-miquel.raynal@bootlin.com> <920e860b-5fef-1d56-085e-8a90e1ae501b@denx.de> Message-ID: <20180903090252.1b710436@xps13> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: u-boot@lists.denx.de Hi Stefan, Stefan Roese wrote on Sat, 1 Sep 2018 11:02:43 +0200: > On 31.08.2018 16:57, Miquel Raynal wrote: > > Current implementation of mtdparts command errors out if the desired MTD > > device is not found. Fallback to the new probe function in this case > > before erroring out. =20 > > > This will the save the user the need to call something like 'mtd list= ' =20 > > before mtdparts. =20 > > > Signed-off-by: Miquel Raynal =20 > > Acked-by: Jagan Teki > > --- > > cmd/mtdparts.c | 16 +++++++++++++--- > > 1 file changed, 13 insertions(+), 3 deletions(-) =20 > > > diff --git a/cmd/mtdparts.c b/cmd/mtdparts.c =20 > > index f7ed1a0779..a1102c3fc5 100644 > > --- a/cmd/mtdparts.c > > +++ b/cmd/mtdparts.c > > @@ -79,6 +79,10 @@ > > #include > > #include =20 > > > +#if defined(CONFIG_MTD) =20 > > +#include > > +#endif > > + > > #if defined(CONFIG_CMD_NAND) > > #include > > #include > > @@ -307,9 +311,15 @@ static int get_mtd_info(u8 type, u8 num, struct mt= d_info **mtd) =20 > > > sprintf(mtd_dev, "%s%d", MTD_DEV_TYPE(type), num); =20 > > *mtd =3D get_mtd_device_nm(mtd_dev); > > - if (IS_ERR(*mtd)) { > > - printf("Device %s not found!\n", mtd_dev); > > - return 1; > > + if (IS_ERR_OR_NULL(*mtd)) { > > +#ifdef CONFIG_MTD > > + mtd_probe_devices(); > > + *mtd =3D get_mtd_device_nm(mtd_dev); > > +#endif > > + if (IS_ERR_OR_NULL(*mtd)) { > > + printf("Device %s not found!\n", mtd_dev); > > + return 1; > > + } > > } > > put_mtd_device(*mtd); =20 > > > =20 > This is most likely the use case for CMD_MTD without MTD, correct? Not exactly, I think the use case you were looking for is explained in my previous answer and this #ifdef stands for the opposite situation, where someone using the 'legacy' commands wants to interact with devices with DM compliant drivers: the MTD device won't be registered before (and thus, not accessible) the mtd_probe_device() call. For other devices the use will have to probe manually the device, eg. for SPI-NOR: 'sf probe 0'. >=20 > Reviewed-by: Stefan Roese >=20 > Thanks, > Stefan Thanks, Miqu=C3=A8l