usb: Return -ENOENT when no devices are found

When USB finds no devices it currently returns -EPERM which bootstd does
not understand. This causes other bootdevs of the same priority to be
skipped.

Fix this by returning the correct error code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
Simon Glass 2023-07-30 11:15:12 -06:00 committed by Bin Meng
parent ef8336e270
commit 4c4ccc5a04
2 changed files with 9 additions and 2 deletions

View File

@ -346,7 +346,7 @@ int usb_init(void)
if (controllers_initialized == 0)
printf("No working controllers found\n");
return usb_started ? 0 : -1;
return usb_started ? 0 : -ENOENT;
}
int usb_setup_ehci_gadget(struct ehci_ctrl **ctlrp)

View File

@ -257,7 +257,14 @@ int usb_kbd_deregister(int force);
#endif
/* routines */
int usb_init(void); /* initialize the USB Controller */
/*
* usb_init() - initialize the USB Controllers
*
* Returns: 0 if OK, -ENOENT if there are no USB devices
*/
int usb_init(void);
int usb_stop(void); /* stop the USB Controller */
int usb_detect_change(void); /* detect if a USB device has been (un)plugged */