patch-2.2.4 linux/arch/ppc/kernel/pmac_pci.c
Next file: linux/arch/ppc/kernel/pmac_setup.c
Previous file: linux/arch/ppc/kernel/pci.c
Back to the patch index
Back to the overall index
- Lines: 64
- Date:
Wed Mar 10 21:30:32 1999
- Orig file:
v2.2.3/linux/arch/ppc/kernel/pmac_pci.c
- Orig date:
Thu Nov 19 09:56:27 1998
diff -u --recursive --new-file v2.2.3/linux/arch/ppc/kernel/pmac_pci.c linux/arch/ppc/kernel/pmac_pci.c
@@ -84,7 +84,12 @@
(1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
+ (offset & ~3));
} else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
+ /* Bus number once again taken into consideration.
+ * Change applied from 2.1.24. This makes devices located
+ * behind PCI-PCI bridges visible.
+ * -Ranjit Deshpande, 01/20/99
+ */
+ out_le32(bp->cfg_addr, (bus << 16) + (dev_fn << 8) + (offset & ~3) + 1);
}
udelay(2);
*val = in_8(bp->cfg_data + (offset & 3));
@@ -109,7 +114,8 @@
(1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
+ (offset & ~3));
} else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
+ /* See pci_read_config_byte */
+ out_le32(bp->cfg_addr, (bus << 16) + (dev_fn << 8) + (offset & ~3) + 1);
}
udelay(2);
*val = in_le16((volatile unsigned short *)(bp->cfg_data + (offset & 3)));
@@ -134,7 +140,8 @@
(1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
+ offset);
} else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + offset + 1);
+ /* See pci_read_config_byte */
+ out_le32(bp->cfg_addr, (bus << 16) + (dev_fn << 8) + offset + 1);
}
udelay(2);
*val = in_le32((volatile unsigned int *)bp->cfg_data);
@@ -156,7 +163,8 @@
(1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
+ (offset & ~3));
} else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
+ /* See pci_read_config_byte */
+ out_le32(bp->cfg_addr, (bus << 16) + (dev_fn << 8) + (offset & ~3) + 1);
}
udelay(2);
out_8(bp->cfg_data + (offset & 3), val);
@@ -180,7 +188,8 @@
(1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
+ (offset & ~3));
} else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + (offset & ~3) + 1);
+ /* See pci_read_config_byte */
+ out_le32(bp->cfg_addr, (bus << 16) + (dev_fn << 8) + (offset & ~3) + 1);
}
udelay(2);
out_le16((volatile unsigned short *)(bp->cfg_data + (offset & 3)), val);
@@ -204,7 +213,8 @@
(1UL << (dev_fn >> 3)) + ((dev_fn & 7) << 8)
+ offset);
} else {
- out_le32(bp->cfg_addr, (dev_fn << 8) + offset + 1);
+ /* See pci_read_config_byte */
+ out_le32(bp->cfg_addr, (bus << 16) + (dev_fn << 8) + (offset & ~3) + 1);
}
udelay(2);
out_le32((volatile unsigned int *)bp->cfg_data, val);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)