- printf ("device has %x interfaces\n", 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;
+ debug ("device has %x interfaces\n", num);
+ if (num > 1) {
+ int interfaces = usb_interface_check(dd->idVendor, dd->idProduct);
+ if (interfaces) {
+ /* Well known device, don't warn */
+ num = interfaces;
+ } else {
+
+ printf ("\nNOTICE: 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;
+ }
+ }