Print a warning when an unknow USB controller type is detected.
authorSteven A. Falco <sfalco@coincident.com>
Thu, 14 Jul 2011 01:59:31 +0000 (21:59 -0400)
committerPatrick Georgi <patrick@georgi-clan.de>
Thu, 14 Jul 2011 06:00:30 +0000 (08:00 +0200)
The Intel E6XX Atom processor reports an unknown USB controller type (in
addition to the standard EHCI and OHCI ones).  Add a default case to
print a warning when an unknown controller type is detected.

Change-Id: I885d0ccec4c46fd212cceac599290e9bf85edbbb
Signed-off-by: Steven A. Falco <sfalco@coincident.com>
Reviewed-on: http://review.coreboot.org/100
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
payloads/libpayload/drivers/usb/usbinit.c

index f0d5a60d1e9827c45e2e8cbb46f328000fb665c5..d3cfbb75e15f2ab37e15991e4cbe317759ea4577 100644 (file)
@@ -70,40 +70,47 @@ usb_controller_initialize (int bus, int dev, int func)
 
                printf ("%02x:%02x.%x %04x:%04x.%d ", bus, dev, func,
                        pciid >> 16, pciid & 0xFFFF, func);
 
                printf ("%02x:%02x.%x %04x:%04x.%d ", bus, dev, func,
                        pciid >> 16, pciid & 0xFFFF, func);
-               if (prog_if == 0) {
-                       printf ("UHCI controller\n");
+               switch(prog_if) {
+                       case 0x00:
+                               printf ("UHCI controller\n");
 #ifdef CONFIG_USB_UHCI
 #ifdef CONFIG_USB_UHCI
-                       uhci_init (addr);
+                               uhci_init (addr);
 #else
 #else
-                       printf ("Not supported.\n");
+                               printf ("Not supported.\n");
 #endif
 #endif
-               }
-               if (prog_if == 0x10) {
-                       printf ("OHCI controller\n");
+                               break;
+
+                       case 0x10:
+                               printf ("OHCI controller\n");
 #ifdef CONFIG_USB_OHCI
 #ifdef CONFIG_USB_OHCI
-                       ohci_init(addr);
+                               ohci_init(addr);
 #else
 #else
-                       printf ("Not supported.\n");
+                               printf ("Not supported.\n");
 #endif
 #endif
+                               break;
 
 
-               }
-               if (prog_if == 0x20) {
-                       printf ("EHCI controller\n");
+                       case 0x20:
+                               printf ("EHCI controller\n");
 #ifdef CONFIG_USB_EHCI
 #ifdef CONFIG_USB_EHCI
-                       ehci_init(addr);
+                               ehci_init(addr);
 #else
 #else
-                       printf ("Not supported.\n");
+                               printf ("Not supported.\n");
 #endif
 #endif
+                               break;
 
 
-               }
-               if (prog_if == 0x30) {
-                       printf ("xHCI controller\n");
+                       case 0x30:
+                               printf ("xHCI controller\n");
 #ifdef CONFIG_USB_XHCI
 #ifdef CONFIG_USB_XHCI
-                       xhci_init(addr);
+                               xhci_init(addr);
 #else
 #else
-                       printf ("Not supported.\n");
+                               printf ("Not supported.\n");
 #endif
 #endif
+                               break;
 
 
+                       default:
+                               printf ("unknown controller %x not supported\n",
+                                               prog_if);
+                               break;
                }
        }
 
                }
        }