Message ID | 64779fa9e2c5988a347fe7b9ee55fdf03b464fba.1724419624.git.jerome.forissier@linaro.org |
---|---|
State | New |
Headers | show |
Series | Introduce the lwIP network stack | expand |
Hi Jerome, On Fri, 23 Aug 2024 at 07:49, Jerome Forissier <jerome.forissier@linaro.org> wrote: > > Add a function to start a given network device, and update eth_init() > to use it. > > Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> > Reviewed-by: Tom Rini <trini@konsulko.com> > --- > drivers/mtd/altera_qspi.c | 4 ++-- > include/net-common.h | 1 + > net/eth-uclass.c | 38 +++++++++++++++++++++++++------------- > 3 files changed, 28 insertions(+), 15 deletions(-) > > diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c > index c26615821c8..e5c8df750b7 100644 > --- a/drivers/mtd/altera_qspi.c > +++ b/drivers/mtd/altera_qspi.c > @@ -96,7 +96,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) > ret = mtd_erase(mtd, &instr); > flash_set_verbose(0); > if (ret) > - return ERR_PROTECTED; > + return FL_ERR_PROTECTED; Could you put these in another patch? > > puts(" done\n"); > return 0; > @@ -114,7 +114,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt) > > ret = mtd_write(mtd, to, cnt, &retlen, src); > if (ret) > - return ERR_PROTECTED; > + return FL_ERR_PROTECTED; > > return 0; > } > diff --git a/include/net-common.h b/include/net-common.h > index 26674ec7e90..43bc6b9a0d5 100644 > --- a/include/net-common.h > +++ b/include/net-common.h > @@ -192,6 +192,7 @@ int eth_env_set_enetaddr_by_index(const char *base_name, int index, > int usb_ether_init(void); > > int eth_init(void); /* Initialize the device */ > +int eth_start_udev(struct udevice *dev); Please add a proper function comment to all exported functions. > int eth_send(void *packet, int length); /* Send a packet */ > #if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER) > int eth_receive(void *packet, int length); /* Receive a packet*/ > diff --git a/net/eth-uclass.c b/net/eth-uclass.c > index e34d7af0229..6dd9b9bb98e 100644 > --- a/net/eth-uclass.c > +++ b/net/eth-uclass.c > @@ -284,6 +284,27 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op, > } > U_BOOT_ENV_CALLBACK(ethaddr, on_ethaddr); > > +int eth_start_udev(struct udevice *dev) > +{ > + struct eth_device_priv *priv = dev_get_uclass_priv(dev); > + int ret; > + > + if (priv->running) > + return 0; > + > + if (!device_active(dev)) > + return -EINVAL; > + > + ret = eth_get_ops(dev)->start(dev); > + if (ret >= 0) { It is better to have the error path jump out, so: if (ret < 0) return ret; > + priv->state = ETH_STATE_ACTIVE; > + priv->running = true; > + ret = 0; > + } > + > + return ret; return 0 > +} > + > int eth_init(void) > { > struct udevice *current = NULL; > @@ -328,20 +349,11 @@ int eth_init(void) > if (current) { > debug("Trying %s\n", current->name); > > - if (device_active(current)) { > - ret = eth_get_ops(current)->start(current); > - if (ret >= 0) { > - struct eth_device_priv *priv = > - dev_get_uclass_priv(current); > - > - priv->state = ETH_STATE_ACTIVE; > - priv->running = true; > - ret = 0; > - goto end; > - } > - } else { > + ret = eth_start_udev(current); > + if (ret < 0) > ret = eth_errno; > - } > + else > + goto end; Can that be just a 'break' ? > > debug("FAIL\n"); > } else { > -- > 2.40.1 > Regards, Simon
On 8/29/24 16:05, Simon Glass wrote: > Hi Jerome, > > On Fri, 23 Aug 2024 at 07:49, Jerome Forissier > <jerome.forissier@linaro.org> wrote: >> >> Add a function to start a given network device, and update eth_init() >> to use it. >> >> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> >> Reviewed-by: Tom Rini <trini@konsulko.com> >> --- >> drivers/mtd/altera_qspi.c | 4 ++-- >> include/net-common.h | 1 + >> net/eth-uclass.c | 38 +++++++++++++++++++++++++------------- >> 3 files changed, 28 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c >> index c26615821c8..e5c8df750b7 100644 >> --- a/drivers/mtd/altera_qspi.c >> +++ b/drivers/mtd/altera_qspi.c >> @@ -96,7 +96,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) >> ret = mtd_erase(mtd, &instr); >> flash_set_verbose(0); >> if (ret) >> - return ERR_PROTECTED; >> + return FL_ERR_PROTECTED; > > Could you put these in another patch? Oops! They belong in "flash: prefix error codes with FL_" [1] in my "Miscellaneous fixes" series which I will update too. [1] https://lists.denx.de/pipermail/u-boot/2024-August/563326.html >> puts(" done\n"); >> return 0; >> @@ -114,7 +114,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt) >> >> ret = mtd_write(mtd, to, cnt, &retlen, src); >> if (ret) >> - return ERR_PROTECTED; >> + return FL_ERR_PROTECTED; >> >> return 0; >> } >> diff --git a/include/net-common.h b/include/net-common.h >> index 26674ec7e90..43bc6b9a0d5 100644 >> --- a/include/net-common.h >> +++ b/include/net-common.h >> @@ -192,6 +192,7 @@ int eth_env_set_enetaddr_by_index(const char *base_name, int index, >> int usb_ether_init(void); >> >> int eth_init(void); /* Initialize the device */ >> +int eth_start_udev(struct udevice *dev); > > Please add a proper function comment to all exported functions. OK >> int eth_send(void *packet, int length); /* Send a packet */ >> #if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER) >> int eth_receive(void *packet, int length); /* Receive a packet*/ >> diff --git a/net/eth-uclass.c b/net/eth-uclass.c >> index e34d7af0229..6dd9b9bb98e 100644 >> --- a/net/eth-uclass.c >> +++ b/net/eth-uclass.c >> @@ -284,6 +284,27 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op, >> } >> U_BOOT_ENV_CALLBACK(ethaddr, on_ethaddr); >> >> +int eth_start_udev(struct udevice *dev) >> +{ >> + struct eth_device_priv *priv = dev_get_uclass_priv(dev); >> + int ret; >> + >> + if (priv->running) >> + return 0; >> + >> + if (!device_active(dev)) >> + return -EINVAL; >> + >> + ret = eth_get_ops(dev)->start(dev); >> + if (ret >= 0) { > > It is better to have the error path jump out, so: > > if (ret < 0) > return ret; OK >> + priv->state = ETH_STATE_ACTIVE; >> + priv->running = true; >> + ret = 0; >> + } >> + >> + return ret; > > return 0 OK >> +} >> + >> int eth_init(void) >> { >> struct udevice *current = NULL; >> @@ -328,20 +349,11 @@ int eth_init(void) >> if (current) { >> debug("Trying %s\n", current->name); >> >> - if (device_active(current)) { >> - ret = eth_get_ops(current)->start(current); >> - if (ret >= 0) { >> - struct eth_device_priv *priv = >> - dev_get_uclass_priv(current); >> - >> - priv->state = ETH_STATE_ACTIVE; >> - priv->running = true; >> - ret = 0; >> - goto end; >> - } >> - } else { >> + ret = eth_start_udev(current); >> + if (ret < 0) >> ret = eth_errno; >> - } >> + else >> + goto end; > > Can that be just a 'break' ? Yep. >> >> debug("FAIL\n"); >> } else { >> -- >> 2.40.1 >> > > Regards, > Simon Thanks,
diff --git a/drivers/mtd/altera_qspi.c b/drivers/mtd/altera_qspi.c index c26615821c8..e5c8df750b7 100644 --- a/drivers/mtd/altera_qspi.c +++ b/drivers/mtd/altera_qspi.c @@ -96,7 +96,7 @@ int flash_erase(flash_info_t *info, int s_first, int s_last) ret = mtd_erase(mtd, &instr); flash_set_verbose(0); if (ret) - return ERR_PROTECTED; + return FL_ERR_PROTECTED; puts(" done\n"); return 0; @@ -114,7 +114,7 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt) ret = mtd_write(mtd, to, cnt, &retlen, src); if (ret) - return ERR_PROTECTED; + return FL_ERR_PROTECTED; return 0; } diff --git a/include/net-common.h b/include/net-common.h index 26674ec7e90..43bc6b9a0d5 100644 --- a/include/net-common.h +++ b/include/net-common.h @@ -192,6 +192,7 @@ int eth_env_set_enetaddr_by_index(const char *base_name, int index, int usb_ether_init(void); int eth_init(void); /* Initialize the device */ +int eth_start_udev(struct udevice *dev); int eth_send(void *packet, int length); /* Send a packet */ #if defined(CONFIG_API) || defined(CONFIG_EFI_LOADER) int eth_receive(void *packet, int length); /* Receive a packet*/ diff --git a/net/eth-uclass.c b/net/eth-uclass.c index e34d7af0229..6dd9b9bb98e 100644 --- a/net/eth-uclass.c +++ b/net/eth-uclass.c @@ -284,6 +284,27 @@ static int on_ethaddr(const char *name, const char *value, enum env_op op, } U_BOOT_ENV_CALLBACK(ethaddr, on_ethaddr); +int eth_start_udev(struct udevice *dev) +{ + struct eth_device_priv *priv = dev_get_uclass_priv(dev); + int ret; + + if (priv->running) + return 0; + + if (!device_active(dev)) + return -EINVAL; + + ret = eth_get_ops(dev)->start(dev); + if (ret >= 0) { + priv->state = ETH_STATE_ACTIVE; + priv->running = true; + ret = 0; + } + + return ret; +} + int eth_init(void) { struct udevice *current = NULL; @@ -328,20 +349,11 @@ int eth_init(void) if (current) { debug("Trying %s\n", current->name); - if (device_active(current)) { - ret = eth_get_ops(current)->start(current); - if (ret >= 0) { - struct eth_device_priv *priv = - dev_get_uclass_priv(current); - - priv->state = ETH_STATE_ACTIVE; - priv->running = true; - ret = 0; - goto end; - } - } else { + ret = eth_start_udev(current); + if (ret < 0) ret = eth_errno; - } + else + goto end; debug("FAIL\n"); } else {