[U-Boot] [PATCH 0/2] USB-CDC: Minor usability fixes

Here are two patches to make USB Ethernet gadget driver more usable.
Vitaly Kuzmichev (2): USB-CDC: Do not rename netdev after its registration USB-CDC: Move MAC addresses setting into usb_eth_init
drivers/usb/gadget/ether.c | 67 ++++++++++++++++++------------------------- 1 files changed, 28 insertions(+), 39 deletions(-)

Calling eth_bind at usb_eth_init time causes renaming of the network device from 'usb_ether' to 'usb0'. Fixing this to keep the first name.
Signed-off-by: Vitaly Kuzmichev vkuzmichev@mvista.com --- drivers/usb/gadget/ether.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c index 261cf7e..765fbd8 100644 --- a/drivers/usb/gadget/ether.c +++ b/drivers/usb/gadget/ether.c @@ -30,7 +30,7 @@
#include "gadget_chips.h"
-#define USB_NET_NAME "usb0" +#define USB_NET_NAME "usb_ether"
#define atomic_read extern struct platform_data brd; @@ -1687,7 +1687,6 @@ autoconf_fail: }
dev->net = &l_netdev; - strcpy(dev->net->name, USB_NET_NAME);
dev->cdc = cdc; dev->zlp = zlp; @@ -1924,7 +1923,7 @@ int usb_eth_initialize(bd_t *bi) int status = 0; struct eth_device *netdev = &l_netdev;
- sprintf(netdev->name, "usb_ether"); + strlcpy(netdev->name, USB_NET_NAME, sizeof(netdev->name));
netdev->init = usb_eth_init; netdev->send = usb_eth_send;

Hi,
2010/12/28 Vitaly Kuzmichev vkuzmichev@mvista.com:
Calling eth_bind at usb_eth_init time causes renaming of the network device from 'usb_ether' to 'usb0'. Fixing this to keep the first name.
Signed-off-by: Vitaly Kuzmichev vkuzmichev@mvista.com
Applied to u-boot-usb Thanks
Remy

This allows to change device and host MAC addresses without performing reset.
Signed-off-by: Vitaly Kuzmichev vkuzmichev@mvista.com --- drivers/usb/gadget/ether.c | 62 ++++++++++++++++++------------------------- 1 files changed, 26 insertions(+), 36 deletions(-)
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c index 765fbd8..6384869 100644 --- a/drivers/usb/gadget/ether.c +++ b/drivers/usb/gadget/ether.c @@ -1788,6 +1788,32 @@ static int usb_eth_init(struct eth_device *netdev, bd_t *bd) error("received NULL ptr"); goto fail; } + + /* Configure default mac-addresses for the USB ethernet device */ +#ifdef CONFIG_USBNET_DEV_ADDR + strlcpy(dev_addr, CONFIG_USBNET_DEV_ADDR, sizeof(dev_addr)); +#endif +#ifdef CONFIG_USBNET_HOST_ADDR + strlcpy(host_addr, CONFIG_USBNET_HOST_ADDR, sizeof(host_addr)); +#endif + /* Check if the user overruled the MAC addresses */ + if (getenv("usbnet_devaddr")) + strlcpy(dev_addr, getenv("usbnet_devaddr"), + sizeof(dev_addr)); + + if (getenv("usbnet_hostaddr")) + strlcpy(host_addr, getenv("usbnet_hostaddr"), + sizeof(host_addr)); + + if (!is_eth_addr_valid(dev_addr)) { + error("Need valid 'usbnet_devaddr' to be set"); + goto fail; + } + if (!is_eth_addr_valid(host_addr)) { + error("Need valid 'usbnet_hostaddr' to be set"); + goto fail; + } + if (usb_gadget_register_driver(ð_driver) < 0) goto fail;
@@ -1920,7 +1946,6 @@ static struct usb_gadget_driver eth_driver = {
int usb_eth_initialize(bd_t *bi) { - int status = 0; struct eth_device *netdev = &l_netdev;
strlcpy(netdev->name, USB_NET_NAME, sizeof(netdev->name)); @@ -1933,41 +1958,6 @@ int usb_eth_initialize(bd_t *bi) #ifdef CONFIG_MCAST_TFTP #error not supported #endif - /* Configure default mac-addresses for the USB ethernet device */ -#ifdef CONFIG_USBNET_DEV_ADDR - strncpy(dev_addr, CONFIG_USBNET_DEV_ADDR, sizeof(dev_addr)); -#endif -#ifdef CONFIG_USBNET_HOST_ADDR - strncpy(host_addr, CONFIG_USBNET_HOST_ADDR, sizeof(host_addr)); -#endif - /* Check if the user overruled the MAC addresses */ - if (getenv("usbnet_devaddr")) - strncpy(dev_addr, getenv("usbnet_devaddr"), - sizeof(dev_addr)); - - if (getenv("usbnet_hostaddr")) - strncpy(host_addr, getenv("usbnet_hostaddr"), - sizeof(host_addr)); - - /* Make sure both strings are terminated */ - dev_addr[sizeof(dev_addr)-1] = '\0'; - host_addr[sizeof(host_addr)-1] = '\0'; - - if (!is_eth_addr_valid(dev_addr)) { - error("Need valid 'usbnet_devaddr' to be set"); - status = -1; - } - if (!is_eth_addr_valid(host_addr)) { - error("Need valid 'usbnet_hostaddr' to be set"); - status = -1; - } - if (status) - goto fail; - eth_register(netdev); return 0; - -fail: - error("%s failed. error = %d", __func__, status); - return status; }

Hi,
2010/12/28 Vitaly Kuzmichev vkuzmichev@mvista.com:
This allows to change device and host MAC addresses without performing reset.
Signed-off-by: Vitaly Kuzmichev vkuzmichev@mvista.com
drivers/usb/gadget/ether.c | 62 ++++++++++++++++++------------------------- 1 files changed, 26 insertions(+), 36 deletions(-)
Applied to u-boot-usb. Thanks.
Remy
participants (2)
-
Remy Bohmer
-
Vitaly Kuzmichev