patch-2.2.18 linux/drivers/pci/compat.c
Next file: linux/drivers/pci/pcisyms.c
Previous file: linux/drivers/nubus/proc.c
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
Fri Sep 8 17:05:10 2000
- Orig file:
v2.2.17/drivers/pci/compat.c
- Orig date:
Fri Apr 21 12:46:24 2000
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/drivers/pci/compat.c linux/drivers/pci/compat.c
@@ -41,3 +41,31 @@
}
return PCIBIOS_DEVICE_NOT_FOUND;
}
+
+/* 2.4 compatibility */
+
+unsigned long pci_resource_len (struct pci_dev *dev, int n_base)
+{
+ u32 l, sz;
+ int reg = PCI_BASE_ADDRESS_0 + (n_base << 2);
+
+ /* XXX temporarily disable I/O and memory decoding for this device? */
+
+ pci_read_config_dword (dev, reg, &l);
+ if (l == 0xffffffff)
+ return 0;
+
+ pci_write_config_dword (dev, reg, ~0);
+ pci_read_config_dword (dev, reg, &sz);
+ pci_write_config_dword (dev, reg, l);
+
+ if (!sz || sz == 0xffffffff)
+ return 0;
+ if ((l & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_MEMORY) {
+ sz = ~(sz & PCI_BASE_ADDRESS_MEM_MASK);
+ } else {
+ sz = ~(sz & PCI_BASE_ADDRESS_IO_MASK) & 0xffff;
+ }
+
+ return sz + 1;
+}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)