From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Thu, 30 Aug 2012 23:12:57 +0200 Subject: [U-Boot] [PATCH 4/4] usb: add support for multiple usb controllers In-Reply-To: <1346342604-13355-5-git-send-email-dev@lynxeye.de> References: <1346342604-13355-1-git-send-email-dev@lynxeye.de> <1346342604-13355-5-git-send-email-dev@lynxeye.de> Message-ID: <201208302312.57171.marex@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Lucas Stach, > Allows to initialize more than one USB controller at once. > > Signed-off-by: Lucas Stach [...] > int usb_stop(void) > { > - int res = 0; > + int i; > > if (usb_started) { > asynch_allowed = 1; > usb_started = 0; > usb_hub_reset(); > - res = usb_lowlevel_stop(0); > + > + for (i = 0; i < CONFIG_USB_MAX_CONTROLLER_COUNT; i++) > + usb_lowlevel_stop(i); You might want to track if any failed and return it or emit warning. Otherwise: Reviewed-by: Marek Vasut > } > - return res; > + > + return 0; > } > > /* > @@ -751,7 +781,6 @@ struct usb_device *usb_get_dev_index(int index) > return &usb_dev[index]; > } > > - > /* returns a pointer of a new device structure or NULL, if > * no device struct is available > */ > @@ -947,29 +976,4 @@ int usb_new_device(struct usb_device *dev) > return 0; > } > > -/* build device Tree */ > -static void usb_scan_devices(void) > -{ > - int i; > - struct usb_device *dev; > - > - /* first make all devices unknown */ > - for (i = 0; i < USB_MAX_DEVICE; i++) { > - memset(&usb_dev[i], 0, sizeof(struct usb_device)); > - usb_dev[i].devnum = -1; > - } > - dev_index = 0; > - /* device 0 is always present (root hub, so let it analyze) */ > - dev = usb_alloc_new_device(ctrl); > - if (usb_new_device(dev)) > - printf("No USB Device found\n"); > - else > - printf("%d USB Device(s) found\n", dev_index); > - /* insert "driver" if possible */ > -#ifdef CONFIG_USB_KEYBOARD > - drv_usb_kbd_init(); > -#endif > - USB_PRINTF("scan end\n"); > -} > - > /* EOF */ > diff --git a/common/usb_storage.c b/common/usb_storage.c > index 4aeed82..950451e 100644 > --- a/common/usb_storage.c > +++ b/common/usb_storage.c > @@ -244,7 +244,7 @@ int usb_stor_scan(int mode) > struct usb_device *dev; > > if (mode == 1) > - printf(" scanning bus for storage devices... "); > + printf(" scanning usb for storage devices... "); > > usb_disable_asynch(1); /* asynch transfer not allowed */ > > diff --git a/drivers/usb/eth/usb_ether.c b/drivers/usb/eth/usb_ether.c > index 6cad6c8..f361e8b 100644 > --- a/drivers/usb/eth/usb_ether.c > +++ b/drivers/usb/eth/usb_ether.c > @@ -123,7 +123,7 @@ int usb_host_eth_scan(int mode) > > > if (mode == 1) > - printf(" scanning bus for ethernet devices... "); > + printf(" scanning usb for ethernet devices... "); > > old_async = usb_disable_asynch(1); /* asynch transfer not allowed */