summaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-09-19 19:15:08 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-09-19 19:15:08 +0000
commit03ba4131783cc9e872f8bb26a03f15bc11f27564 (patch)
tree88db8dba75ae06ba3bad08e42c5e52efc162535c /drivers/pci
parent257730f99381dd26e10b832fce4c94cae7ac1176 (diff)
- Merge with Linux 2.1.121.
- Bugfixes.
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/oldproc.c4
-rw-r--r--drivers/pci/pci.c14
-rw-r--r--drivers/pci/proc.c1
3 files changed, 12 insertions, 7 deletions
diff --git a/drivers/pci/oldproc.c b/drivers/pci/oldproc.c
index a71f26bbe..95e904a40 100644
--- a/drivers/pci/oldproc.c
+++ b/drivers/pci/oldproc.c
@@ -1,5 +1,5 @@
/*
- * $Id: oldproc.c,v 1.16 1998/07/19 17:50:18 davem Exp $
+ * $Id: oldproc.c,v 1.20 1998/08/23 12:12:01 mj Exp $
*
* Backward-compatible procfs interface for PCI.
*
@@ -122,7 +122,9 @@ struct pci_dev_info dev_info[] = {
DEVICE( IBM, IBM_82351, "82351"),
DEVICE( IBM, IBM_SERVERAID, "ServeRAID"),
DEVICE( IBM, IBM_TR_WAKE, "Wake On LAN Token Ring"),
+ DEVICE( IBM, IBM_MPIC, "MPIC-2 Interrupt Controller"),
DEVICE( IBM, IBM_3780IDSP, "MWave DSP"),
+ DEVICE( IBM, IBM_MPIC_2, "MPIC-2 ASIC Interrupt Controller"),
DEVICE( WD, WD_7197, "WD 7197"),
DEVICE( AMD, AMD_LANCE, "79C970"),
DEVICE( AMD, AMD_SCSI, "53C974"),
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index b70b879ab..0f62a76c1 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -1,5 +1,5 @@
/*
- * $Id: pci.c,v 1.86 1998/07/15 20:34:47 mj Exp $
+ * $Id: pci.c,v 1.90 1998/09/05 12:39:39 mj Exp $
*
* PCI Bus Services, see include/linux/pci.h for further explanation.
*
@@ -138,7 +138,8 @@ __initfunc(void pci_read_bases(struct pci_dev *dev, unsigned int howmany))
if (l == 0xffffffff)
continue;
dev->base_address[reg] = l;
- if ((l & PCI_MEMORY_RANGE_TYPE_MASK) == PCI_BASE_ADDRESS_MEM_TYPE_64) {
+ if ((l & (PCI_BASE_ADDRESS_SPACE | PCI_BASE_ADDRESS_MEM_TYPE_MASK))
+ == (PCI_BASE_ADDRESS_SPACE_MEMORY | PCI_BASE_ADDRESS_MEM_TYPE_64)) {
reg++;
pci_read_config_dword(dev, PCI_BASE_ADDRESS_0 + (reg << 2), &l);
if (l) {
@@ -170,13 +171,14 @@ __initfunc(unsigned int pci_scan_bus(struct pci_bus *bus))
/* not a multi-function device */
continue;
}
- pcibios_read_config_byte(bus->number, devfn, PCI_HEADER_TYPE, &hdr_type);
+ if (pcibios_read_config_byte(bus->number, devfn, PCI_HEADER_TYPE, &hdr_type))
+ continue;
if (!PCI_FUNC(devfn))
is_multi = hdr_type & 0x80;
- pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &l);
- /* some broken boards return 0 if a slot is empty: */
- if (l == 0xffffffff || l == 0x00000000 || l == 0x0000ffff || l == 0xffff0000) {
+ if (pcibios_read_config_dword(bus->number, devfn, PCI_VENDOR_ID, &l) ||
+ /* some broken boards return 0 if a slot is empty: */
+ l == 0xffffffff || l == 0x00000000 || l == 0x0000ffff || l == 0xffff0000) {
is_multi = 0;
continue;
}
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
index b9362798f..d1a78fe53 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
@@ -204,6 +204,7 @@ static struct file_operations proc_bus_pci_operations = {
NULL, /* ioctl */
NULL, /* mmap */
NULL, /* no special open code */
+ NULL, /* flush */
NULL, /* no special release code */
NULL /* can't fsync */
};