diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-04 07:40:19 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-04 07:40:19 +0000 |
commit | 33263fc5f9ac8e8cb2b22d06af3ce5ac1dd815e4 (patch) | |
tree | 2d1b86a40bef0958a68cf1a2eafbeb0667a70543 /drivers/pci/pci.c | |
parent | 216f5f51aa02f8b113aa620ebc14a9631a217a00 (diff) |
Merge with Linux 2.3.32.
Diffstat (limited to 'drivers/pci/pci.c')
-rw-r--r-- | drivers/pci/pci.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 7d55ba550..05dc22cd1 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -6,7 +6,7 @@ * Copyright 1993 -- 1997 Drew Eckhardt, Frederic Potter, * David Mosberger-Tang * - * Copyright 1997 -- 1999 Martin Mares <mj@atrey.karlin.mff.cuni.cz> + * Copyright 1997 -- 1999 Martin Mares <mj@suse.cz> */ #include <linux/types.h> @@ -437,6 +437,7 @@ static unsigned int __init pci_do_scan_bus(struct pci_bus *bus) dev = dev_cache; memset(dev, 0, sizeof(*dev)); dev->bus = bus; + dev->sysdata = bus->sysdata; dev->devfn = devfn; if (pci_read_config_byte(dev, PCI_HEADER_TYPE, &hdr_type)) @@ -490,13 +491,16 @@ static unsigned int __init pci_do_scan_bus(struct pci_bus *bus) pci_read_config_word(dev, PCI_CB_SUBSYSTEM_ID, &dev->subsystem_device); break; default: /* unknown header */ - bad: printk(KERN_ERR "PCI: device %s has unknown header type %02x, ignoring.\n", dev->slot_name, hdr_type); continue; + bad: + printk(KERN_ERR "PCI: %s: class %x doesn't match header type %02x. Ignoring class.\n", + dev->slot_name, class, hdr_type); + dev->class = PCI_CLASS_NOT_DEFINED; } - DBG("PCI: %02x:%02x [%04x/%04x]\n", bus->number, dev->devfn, dev->vendor, dev->device); + DBG("PCI: %02x:%02x [%04x/%04x] %06x %02x\n", bus->number, dev->devfn, dev->vendor, dev->device, class, hdr_type); /* * Put it into the global PCI device chain. It's used to @@ -556,6 +560,7 @@ static unsigned int __init pci_do_scan_bus(struct pci_bus *bus) child->self = dev; child->parent = bus; child->ops = bus->ops; + child->sysdata = bus->sysdata; /* * Set up the primary, secondary and subordinate |