aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers/usb/usb.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/drivers/usb/usb.c')
-rw-r--r--payloads/libpayload/drivers/usb/usb.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/payloads/libpayload/drivers/usb/usb.c b/payloads/libpayload/drivers/usb/usb.c
index 3820180cbc..d536d31d86 100644
--- a/payloads/libpayload/drivers/usb/usb.c
+++ b/payloads/libpayload/drivers/usb/usb.c
@@ -281,7 +281,16 @@ set_address (hci_t *controller, int lowspeed)
int num = cd->bNumInterfaces;
interface_descriptor_t *current = interface;
printf ("device has %x interfaces\n", num);
- num = (num > 5) ? 5 : num;
+ if (num>1)
+ printf ("NOTICE: This driver defaults to using the first interface.\n"
+ "This might be the wrong choice and lead to limited functionality\n"
+ "of the device. Please report such a case to coreboot@coreboot.org\n"
+ "as you might be the first.\n");
+ /* we limit to the first interface, as there was no need to
+ implement something else for the time being. If you need
+ it, see the SetInterface and GetInterface functions in
+ the USB specification, and adapt appropriately. */
+ num = (num > 1) ? 1 : num;
for (i = 0; i < num; i++) {
int j;
printf (" #%x has %x endpoints, interface %x:%x, protocol %x\n", current->bInterfaceNumber, current->bNumEndpoints, current->bInterfaceClass, current->bInterfaceSubClass, current->bInterfaceProtocol);