Message ID | 1445270948-3747-2-git-send-email-jteki@openedev.com |
---|---|
State | Superseded |
Delegated to: | Jagannadha Sutradharudu Teki |
Headers | show |
Hi Jagan, On 19 October 2015 at 10:09, Jagan Teki <jteki@openedev.com> wrote: > Let's use spi_flash_probe for dm and no-dm spi-flash > and make respective function definations separately. > > Signed-off-by: Jagan Teki <jteki@openedev.com> > Cc: Simon Glass <sjg@chromium.org> > --- > common/cmd_sf.c | 19 ++----------------- > drivers/mtd/spi/sf-uclass.c | 17 +---------------- > include/spi_flash.h | 18 ++++-------------- > 3 files changed, 7 insertions(+), 47 deletions(-) I think this is going in the wrong direction - we should not be abstracting out driver model, we should be moving everything to use it. > > diff --git a/common/cmd_sf.c b/common/cmd_sf.c > index f1926e3..cdc6c26 100644 > --- a/common/cmd_sf.c > +++ b/common/cmd_sf.c > @@ -83,9 +83,6 @@ static int do_spi_flash_probe(int argc, char * const argv[]) > unsigned int speed = CONFIG_SF_DEFAULT_SPEED; > unsigned int mode = CONFIG_SF_DEFAULT_MODE; > char *endp; > -#ifndef CONFIG_DM_SPI_FLASH > - struct spi_flash *new; > -#endif > > if (argc >= 2) { > cs = simple_strtoul(argv[1], &endp, 0); > @@ -113,27 +110,15 @@ static int do_spi_flash_probe(int argc, char * const argv[]) > return -1; > } > > -#ifdef CONFIG_DM_SPI_FLASH > - flash = dm_spi_flash_probe(bus, cs, speed, mode); > - if (!flash) { > - printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); > - return 1; > - } > -#else > if (flash) > spi_flash_free(flash); > > - new = spi_flash_probe(bus, cs, speed, mode); > - flash = new; > - > - if (!new) { > + flash = spi_flash_probe(bus, cs, speed, mode); > + if (!flash) { > printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); > return 1; > } > > - flash = new; > -#endif > - > return 0; > } > > diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c > index 9c109fa..a1c5810 100644 > --- a/drivers/mtd/spi/sf-uclass.c > +++ b/drivers/mtd/spi/sf-uclass.c > @@ -27,21 +27,6 @@ int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len) > return sf_get_ops(dev)->erase(dev, offset, len); > } > > -/* > - * TODO(sjg@chromium.org): This is an old-style function. We should remove > - * it when all SPI flash drivers use dm > - */ > -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, > - unsigned int max_hz, unsigned int spi_mode) > -{ > - struct udevice *dev; > - > - if (spi_flash_probe_bus_cs(bus, cs, max_hz, spi_mode, &dev)) > - return NULL; > - > - return dev_get_uclass_priv(dev); > -} > - > void spi_flash_free(struct spi_flash *flash) > { > spi_flash_remove(flash->spi->dev); > @@ -67,7 +52,7 @@ static int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs, > return 0; > } > > -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs, > +struct spi_flash *spi_flash_probe(unsigned int busnum, unsigned int cs, > unsigned int max_hz, unsigned int spi_mode) > { > struct udevice *bus, *new; > diff --git a/include/spi_flash.h b/include/spi_flash.h > index 5abbf99..0afc9fb 100644 > --- a/include/spi_flash.h > +++ b/include/spi_flash.h > @@ -154,16 +154,6 @@ int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len, > */ > int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len); > > -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs, > - unsigned int max_hz, unsigned int spi_mode); > - > -/* Compatibility function - this is the old U-Boot API */ > -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, > - unsigned int max_hz, unsigned int spi_mode); > - > -/* Compatibility function - this is the old U-Boot API */ > -void spi_flash_free(struct spi_flash *flash); > - > int spi_flash_remove(struct udevice *flash); > > static inline int spi_flash_read(struct spi_flash *flash, u32 offset, > @@ -192,8 +182,6 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs, > void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs); > > #else > -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, > - unsigned int max_hz, unsigned int spi_mode); > > /** > * Set up a new SPI flash from an fdt node > @@ -207,8 +195,6 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, > struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node, > int spi_node); > > -void spi_flash_free(struct spi_flash *flash); > - > static inline int spi_flash_read(struct spi_flash *flash, u32 offset, > size_t len, void *buf) > { > @@ -228,6 +214,10 @@ static inline int spi_flash_erase(struct spi_flash *flash, u32 offset, > } > #endif > > +struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, > + unsigned int max_hz, unsigned int spi_mode); > +void spi_flash_free(struct spi_flash *flash); > + > void spi_boot(void) __noreturn; > void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst); > > -- > 1.9.1 > Regards, Simon
Hi Simon, On 29 October 2015 at 00:19, Simon Glass <sjg@chromium.org> wrote: > Hi Jagan, > > On 19 October 2015 at 10:09, Jagan Teki <jteki@openedev.com> wrote: >> Let's use spi_flash_probe for dm and no-dm spi-flash >> and make respective function definations separately. >> >> Signed-off-by: Jagan Teki <jteki@openedev.com> >> Cc: Simon Glass <sjg@chromium.org> >> --- >> common/cmd_sf.c | 19 ++----------------- >> drivers/mtd/spi/sf-uclass.c | 17 +---------------- >> include/spi_flash.h | 18 ++++-------------- >> 3 files changed, 7 insertions(+), 47 deletions(-) > > I think this is going in the wrong direction - we should not be > abstracting out driver model, we should be moving everything to use > it. I'm thinking command code might not know about how driver model handled for for particular device driver. Just process the inputs what the user has given and do driver-model stuff at driver level. Anyway dm_spi enabled boards will use driver model at sf-uclass and non-dm will directly go. > >> >> diff --git a/common/cmd_sf.c b/common/cmd_sf.c >> index f1926e3..cdc6c26 100644 >> --- a/common/cmd_sf.c >> +++ b/common/cmd_sf.c >> @@ -83,9 +83,6 @@ static int do_spi_flash_probe(int argc, char * const argv[]) >> unsigned int speed = CONFIG_SF_DEFAULT_SPEED; >> unsigned int mode = CONFIG_SF_DEFAULT_MODE; >> char *endp; >> -#ifndef CONFIG_DM_SPI_FLASH >> - struct spi_flash *new; >> -#endif >> >> if (argc >= 2) { >> cs = simple_strtoul(argv[1], &endp, 0); >> @@ -113,27 +110,15 @@ static int do_spi_flash_probe(int argc, char * const argv[]) >> return -1; >> } >> >> -#ifdef CONFIG_DM_SPI_FLASH >> - flash = dm_spi_flash_probe(bus, cs, speed, mode); >> - if (!flash) { >> - printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); >> - return 1; >> - } >> -#else >> if (flash) >> spi_flash_free(flash); >> >> - new = spi_flash_probe(bus, cs, speed, mode); >> - flash = new; >> - >> - if (!new) { >> + flash = spi_flash_probe(bus, cs, speed, mode); >> + if (!flash) { >> printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); >> return 1; >> } >> >> - flash = new; >> -#endif >> - >> return 0; >> } >> >> diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c >> index 9c109fa..a1c5810 100644 >> --- a/drivers/mtd/spi/sf-uclass.c >> +++ b/drivers/mtd/spi/sf-uclass.c >> @@ -27,21 +27,6 @@ int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len) >> return sf_get_ops(dev)->erase(dev, offset, len); >> } >> >> -/* >> - * TODO(sjg@chromium.org): This is an old-style function. We should remove >> - * it when all SPI flash drivers use dm >> - */ >> -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, >> - unsigned int max_hz, unsigned int spi_mode) >> -{ >> - struct udevice *dev; >> - >> - if (spi_flash_probe_bus_cs(bus, cs, max_hz, spi_mode, &dev)) >> - return NULL; >> - >> - return dev_get_uclass_priv(dev); >> -} >> - >> void spi_flash_free(struct spi_flash *flash) >> { >> spi_flash_remove(flash->spi->dev); >> @@ -67,7 +52,7 @@ static int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs, >> return 0; >> } >> >> -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs, >> +struct spi_flash *spi_flash_probe(unsigned int busnum, unsigned int cs, >> unsigned int max_hz, unsigned int spi_mode) >> { >> struct udevice *bus, *new; >> diff --git a/include/spi_flash.h b/include/spi_flash.h >> index 5abbf99..0afc9fb 100644 >> --- a/include/spi_flash.h >> +++ b/include/spi_flash.h >> @@ -154,16 +154,6 @@ int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len, >> */ >> int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len); >> >> -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs, >> - unsigned int max_hz, unsigned int spi_mode); >> - >> -/* Compatibility function - this is the old U-Boot API */ >> -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, >> - unsigned int max_hz, unsigned int spi_mode); >> - >> -/* Compatibility function - this is the old U-Boot API */ >> -void spi_flash_free(struct spi_flash *flash); >> - >> int spi_flash_remove(struct udevice *flash); >> >> static inline int spi_flash_read(struct spi_flash *flash, u32 offset, >> @@ -192,8 +182,6 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs, >> void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs); >> >> #else >> -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, >> - unsigned int max_hz, unsigned int spi_mode); >> >> /** >> * Set up a new SPI flash from an fdt node >> @@ -207,8 +195,6 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, >> struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node, >> int spi_node); >> >> -void spi_flash_free(struct spi_flash *flash); >> - >> static inline int spi_flash_read(struct spi_flash *flash, u32 offset, >> size_t len, void *buf) >> { >> @@ -228,6 +214,10 @@ static inline int spi_flash_erase(struct spi_flash *flash, u32 offset, >> } >> #endif >> >> +struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, >> + unsigned int max_hz, unsigned int spi_mode); >> +void spi_flash_free(struct spi_flash *flash); >> + >> void spi_boot(void) __noreturn; >> void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst); >> >> -- >> 1.9.1 >> > > Regards, > Simon > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
diff --git a/common/cmd_sf.c b/common/cmd_sf.c index f1926e3..cdc6c26 100644 --- a/common/cmd_sf.c +++ b/common/cmd_sf.c @@ -83,9 +83,6 @@ static int do_spi_flash_probe(int argc, char * const argv[]) unsigned int speed = CONFIG_SF_DEFAULT_SPEED; unsigned int mode = CONFIG_SF_DEFAULT_MODE; char *endp; -#ifndef CONFIG_DM_SPI_FLASH - struct spi_flash *new; -#endif if (argc >= 2) { cs = simple_strtoul(argv[1], &endp, 0); @@ -113,27 +110,15 @@ static int do_spi_flash_probe(int argc, char * const argv[]) return -1; } -#ifdef CONFIG_DM_SPI_FLASH - flash = dm_spi_flash_probe(bus, cs, speed, mode); - if (!flash) { - printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); - return 1; - } -#else if (flash) spi_flash_free(flash); - new = spi_flash_probe(bus, cs, speed, mode); - flash = new; - - if (!new) { + flash = spi_flash_probe(bus, cs, speed, mode); + if (!flash) { printf("Failed to initialize SPI flash at %u:%u\n", bus, cs); return 1; } - flash = new; -#endif - return 0; } diff --git a/drivers/mtd/spi/sf-uclass.c b/drivers/mtd/spi/sf-uclass.c index 9c109fa..a1c5810 100644 --- a/drivers/mtd/spi/sf-uclass.c +++ b/drivers/mtd/spi/sf-uclass.c @@ -27,21 +27,6 @@ int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len) return sf_get_ops(dev)->erase(dev, offset, len); } -/* - * TODO(sjg@chromium.org): This is an old-style function. We should remove - * it when all SPI flash drivers use dm - */ -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, - unsigned int max_hz, unsigned int spi_mode) -{ - struct udevice *dev; - - if (spi_flash_probe_bus_cs(bus, cs, max_hz, spi_mode, &dev)) - return NULL; - - return dev_get_uclass_priv(dev); -} - void spi_flash_free(struct spi_flash *flash) { spi_flash_remove(flash->spi->dev); @@ -67,7 +52,7 @@ static int spi_flash_probe_bus_cs(unsigned int busnum, unsigned int cs, return 0; } -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs, +struct spi_flash *spi_flash_probe(unsigned int busnum, unsigned int cs, unsigned int max_hz, unsigned int spi_mode) { struct udevice *bus, *new; diff --git a/include/spi_flash.h b/include/spi_flash.h index 5abbf99..0afc9fb 100644 --- a/include/spi_flash.h +++ b/include/spi_flash.h @@ -154,16 +154,6 @@ int spi_flash_write_dm(struct udevice *dev, u32 offset, size_t len, */ int spi_flash_erase_dm(struct udevice *dev, u32 offset, size_t len); -struct spi_flash *dm_spi_flash_probe(unsigned int busnum, unsigned int cs, - unsigned int max_hz, unsigned int spi_mode); - -/* Compatibility function - this is the old U-Boot API */ -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, - unsigned int max_hz, unsigned int spi_mode); - -/* Compatibility function - this is the old U-Boot API */ -void spi_flash_free(struct spi_flash *flash); - int spi_flash_remove(struct udevice *flash); static inline int spi_flash_read(struct spi_flash *flash, u32 offset, @@ -192,8 +182,6 @@ int sandbox_sf_bind_emul(struct sandbox_state *state, int busnum, int cs, void sandbox_sf_unbind_emul(struct sandbox_state *state, int busnum, int cs); #else -struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, - unsigned int max_hz, unsigned int spi_mode); /** * Set up a new SPI flash from an fdt node @@ -207,8 +195,6 @@ struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, struct spi_flash *spi_flash_probe_fdt(const void *blob, int slave_node, int spi_node); -void spi_flash_free(struct spi_flash *flash); - static inline int spi_flash_read(struct spi_flash *flash, u32 offset, size_t len, void *buf) { @@ -228,6 +214,10 @@ static inline int spi_flash_erase(struct spi_flash *flash, u32 offset, } #endif +struct spi_flash *spi_flash_probe(unsigned int bus, unsigned int cs, + unsigned int max_hz, unsigned int spi_mode); +void spi_flash_free(struct spi_flash *flash); + void spi_boot(void) __noreturn; void spi_spl_load_image(uint32_t offs, unsigned int size, void *vdst);
Let's use spi_flash_probe for dm and no-dm spi-flash and make respective function definations separately. Signed-off-by: Jagan Teki <jteki@openedev.com> Cc: Simon Glass <sjg@chromium.org> --- common/cmd_sf.c | 19 ++----------------- drivers/mtd/spi/sf-uclass.c | 17 +---------------- include/spi_flash.h | 18 ++++-------------- 3 files changed, 7 insertions(+), 47 deletions(-)