Hi Mugunthan, On 20 November 2016 at 22:38, Mugunthan V N <mugunthan...@ti.com> wrote: > Hi Simon, > > On Saturday 19 November 2016 01:04 AM, Simon Glass wrote: >> Hi Mugunthan, >> >> On 17 November 2016 at 01:09, Mugunthan V N <mugunthan...@ti.com> wrote: >>> Convert usb ether gadget to adopt usb driver model >>> >>> Signed-off-by: Mugunthan V N <mugunthan...@ti.com> >>> Reviewed-by: Simon Glass <s...@chromium.org> >> >> Sorry, but I'd like to 'un-review' this. >> >>> --- >>> drivers/usb/gadget/ether.c | 36 ++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 36 insertions(+) >>> >>> diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c >>> index 497b981129..9bc61186cf 100644 >>> --- a/drivers/usb/gadget/ether.c >>> +++ b/drivers/usb/gadget/ether.c >>> @@ -24,6 +24,10 @@ >>> #include "gadget_chips.h" >>> #include "rndis.h" >>> >>> +#include <dm.h> >>> +#include <dm/uclass-internal.h> >>> +#include <dm/device-internal.h> >>> + >>> #define USB_NET_NAME "usb_ether" >>> >>> #define atomic_read >>> @@ -101,6 +105,9 @@ struct eth_dev { >>> struct usb_gadget *gadget; >>> struct usb_request *req; /* for control responses */ >>> struct usb_request *stat_req; /* for cdc & rndis status */ >>> +#ifdef CONFIG_DM_USB >>> + struct udevice *usb_udev; >>> +#endif >>> >>> u8 config; >>> struct usb_ep *in_ep, *out_ep, *status_ep; >>> @@ -2303,6 +2310,24 @@ fail: >>> >>> >>> /*-------------------------------------------------------------------------*/ >>> >>> +#ifdef CONFIG_DM_USB >>> +int dm_usb_init(struct eth_dev *e_dev) >>> +{ >>> + struct udevice *dev = NULL; >>> + int ret; >>> + >>> + ret = uclass_first_device(UCLASS_USB_DEV_GENERIC, &dev); >>> + if (!dev || ret) { >>> + error("No USB device found\n"); >>> + return -ENODEV; >>> + } >>> + >>> + e_dev->usb_udev = dev; >>> + >>> + return ret; >>> +} >>> +#endif >>> + >>> static int usb_eth_init(struct eth_device *netdev, bd_t *bd) >>> { >>> struct eth_dev *dev = &l_ethdev; >>> @@ -2315,7 +2340,14 @@ static int usb_eth_init(struct eth_device *netdev, >>> bd_t *bd) >>> goto fail; >>> } >>> >>> +#ifdef CONFIG_DM_USB >>> + if (dm_usb_init(dev)) { >>> + error("USB ether not found\n"); >>> + return -ENODEV; >>> + } >>> +#else >>> board_usb_init(0, USB_INIT_DEVICE); >>> +#endif >>> >>> /* Configure default mac-addresses for the USB ethernet device */ >>> #ifdef CONFIG_USBNET_DEV_ADDR >>> @@ -2497,7 +2529,11 @@ void usb_eth_halt(struct eth_device *netdev) >>> } >>> >>> usb_gadget_unregister_driver(ð_driver); >>> +#ifdef CONFIG_DM_USB >>> + device_remove(dev->usb_udev); >>> +#else >>> board_usb_cleanup(0, USB_INIT_DEVICE); >>> +#endif >> >> This doesn't look right to me. If your board is to be an Ethernet >> device then it should do: >> >> uclass_first_device(UCLASS_ETH, &dev) >> >> to get the device. That could be in the device tree under the USB >> node, or perhaps you want to have a setup function which manualy binds >> the device, a bit like usb_find_and_bind_driver(). >> > > This patch is to get usb device for the ether gadget. It uses the same > api with UCLASS_USB_DEV_GENERIC to get usb device. The patch hadn't done > for eth driver model adoption.
So can you do that one first, or is it coming soon? Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot