Hi Simon On Thursday 24 November 2016 07:51 AM, Simon Glass wrote: > 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? >
Its already implemented above in the function dm_usb_init() Regards Mugunthan V N _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot