Author: oxygene
Date: Fri Sep  3 16:54:50 2010
New Revision: 5774
URL: https://tracker.coreboot.org/trac/coreboot/changeset/5774

Log:
The AMD CS5536's USB controllers are located at device 0F, functions 4
and 5.  They're not found if only function 0 is checked.  So if a device
exists at all, try all its functions.  usb_controller_initialize() will
silently skip all device classes != 0C03.

(changed to continue to use 32bit accesses -pg)

Signed-off-by: Jens Rottmann <[email protected]>
Acked-by: Patrick Georgi <[email protected]>

Modified:
   trunk/payloads/libpayload/drivers/usb/usbinit.c

Modified: trunk/payloads/libpayload/drivers/usb/usbinit.c
==============================================================================
--- trunk/payloads/libpayload/drivers/usb/usbinit.c     Fri Sep  3 11:36:37 
2010        (r5773)
+++ trunk/payloads/libpayload/drivers/usb/usbinit.c     Fri Sep  3 16:54:50 
2010        (r5774)
@@ -126,7 +126,7 @@
         */
        for (bus = 0; bus < 256; bus++)
                for (dev = 0; dev < 32; dev++)
-                       if (pci_read_config32 (PCI_DEV(bus, dev, 0), 8) >> 16 
== 0x0c03)
+                       if (pci_read_config32 (PCI_DEV(bus, dev, 0), 8) >> 16 
!= 0xffff)
                                for (func = 7; func >= 0 ; func--)
                                        usb_controller_initialize (bus, dev, 
func);
        usb_poll();

-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to