summaryrefslogtreecommitdiff
path: root/src/devices
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2010-04-02 16:30:25 +0000
committerStefan Reinauer <stepan@openbios.org>2010-04-02 16:30:25 +0000
commit7355c7590bfd55f5bb15a5ca06acd841ece3b24a (patch)
tree9c6a853609fa16162a2eb3bdee0dc055b1cdbf6c /src/devices
parent0c781b2694b2c137d9761704954ea38be5ba8a15 (diff)
The error message is misleading, even for a SPEW, because
the slot is empty, it's NOT a bad ID (and the message is more confusing than helpful even in SPEW) Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Ronald G. Minnich <rminnich@gmail.com> Acked-by: Myles Watson <mylesgw@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5345 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/pci_device.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c
index fbe8b335af..b85ee53a72 100644
--- a/src/devices/pci_device.c
+++ b/src/devices/pci_device.c
@@ -910,10 +910,14 @@ device_t pci_probe_dev(device_t dev, struct bus * bus, unsigned devfn)
dummy.path.pci.devfn = devfn;
id = pci_read_config32(&dummy, PCI_VENDOR_ID);
/* Have we found something?
- * Some broken boards return 0 if a slot is empty.
+ * Some broken boards return 0 if a slot is empty, but
+ * the expected answer is 0xffffffff
*/
- if ((id == 0xffffffff) || (id == 0x00000000) ||
- (id == 0x0000ffff) || (id == 0xffff0000)) {
+ if (id == 0xffffffff) {
+ return NULL;
+ }
+ if ((id == 0x00000000) || (id == 0x0000ffff) ||
+ (id == 0xffff0000)) {
printk(BIOS_SPEW, "%s, bad id 0x%x\n", dev_path(&dummy), id);
return NULL;
}