Fix bug from r5476 re CS5536 device search during GeodeLX PCI domain enable
authorPeter Stuge <peter@stuge.se>
Sun, 23 May 2010 04:50:41 +0000 (04:50 +0000)
committerPeter Stuge <peter@stuge.se>
Sun, 23 May 2010 04:50:41 +0000 (04:50 +0000)
cs5536.c:chipsetinit() is called during northbridge pci_domain_enable()
which happens before scan_bus() so the device tree does not have PCI
vendor/device ids yet. Let's use dev_find_slot() for now. This works
only as long as the CS5536 has PCI device id 0xf in all mainboards,
and a better solution is needed in case that ever changes!

Signed-off-by: Peter Stuge <peter@stuge.se>
Acked-by: Nathan Williams <nathan@traverse.com.au>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5581 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

src/southbridge/amd/cs5536/cs5536.c

index 11679278f89fe9227481029f478f7987f142ebc8..dbf42b913f73a05c623751e4e5e92189fbe33029 100644 (file)
@@ -530,8 +530,7 @@ void chipsetinit(void)
        struct southbridge_amd_cs5536_config *sb;
        struct msrinit *csi;
 
-       dev = dev_find_device(PCI_VENDOR_ID_AMD,
-                       PCI_DEVICE_ID_AMD_CS5536_ISA, 0);
+       dev = dev_find_slot(0, PCI_DEVFN(0xf, 0));
 
        if (!dev) {
                printk(BIOS_ERR, "CS5536 not found.\n");