usb: Handle -ENODEV from usb_lowlevel_init()
As we support both Host and Device mode operation, an OTG controller can return -ENODEV on a port which it found to be in Device mode during Host mode scan for devices. In case -ENODEV is returned, print that the port is not available and continue instead of screaming a bloody error message. Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
parent
124c599875
commit
97b9eb9e6a
11
common/usb.c
11
common/usb.c
@ -34,7 +34,7 @@
|
||||
#include <asm/byteorder.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <compiler.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <usb.h>
|
||||
#ifdef CONFIG_4xx
|
||||
#include <asm/4xx_pci.h>
|
||||
@ -60,6 +60,7 @@ int usb_init(void)
|
||||
void *ctrl;
|
||||
struct usb_device *dev;
|
||||
int i, start_index = 0;
|
||||
int ret;
|
||||
|
||||
dev_index = 0;
|
||||
asynch_allowed = 1;
|
||||
@ -75,7 +76,13 @@ int usb_init(void)
|
||||
for (i = 0; i < CONFIG_USB_MAX_CONTROLLER_COUNT; i++) {
|
||||
/* init low_level USB */
|
||||
printf("USB%d: ", i);
|
||||
if (usb_lowlevel_init(i, USB_INIT_HOST, &ctrl)) {
|
||||
ret = usb_lowlevel_init(i, USB_INIT_HOST, &ctrl);
|
||||
if (ret == -ENODEV) { /* No such device. */
|
||||
puts("Port not available.\n");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ret) { /* Other error. */
|
||||
puts("lowlevel init failed\n");
|
||||
continue;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user