[U-Boot] [PATCH 4/4] usb: add support for multiple usb controllers
Marek Vasut
marex at denx.de
Thu Aug 30 23:12:57 CEST 2012
Dear Lucas Stach,
> Allows to initialize more than one USB controller at once.
>
> Signed-off-by: Lucas Stach <dev at lynxeye.de>
[...]
> 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 <marex at denx.de>
> }
> - 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 */
More information about the U-Boot
mailing list