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 JRottmann@LiPPERTEmbedded.de Acked-by: Patrick Georgi patrick.georgi@coresystems.de
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();