[PATCH] PCI: handle subtractive decode pci-pci bridge better

[PATCH] PCI: handle subtractive decode pci-pci bridge better

Post by Greg K » Sun, 03 Jul 2005 06:20:07


[PATCH] PCI: handle subtractive decode pci-pci bridge better

With the number of PCI bus resources increased to 8, we can
handle the subtractive decode PCI-PCI bridge like a normal
bridge, taking into account standard PCI-PCI bridge windows
(resources 0-2). This helps to avoid problems with peer-to-peer DMA
behind such bridges, poor performance for MMIO ranges outside bridge
windows and prefetchable vs. non-prefetchable memory issues.

To reflect the fact that such bridges do forward all addresses to
the secondary bus (transparency), remaining bus resources 3-7 are
linked to resources 0-4 of the primary bus. These resources will be
used as fallback by resource management code if allocation from
standard bridge windows fails for some reason.

Signed-off-by: Ivan Kokshaysky < XXXX@XXXXX.COM >
Acked-by: Dominik Brodowski < XXXX@XXXXX.COM >
Signed-off-by: Greg Kroah-Hartman < XXXX@XXXXX.COM >

---
commit 90b54929b626c80056262d9d99b3f48522e404d0
tree d5cb91ff7bd0ac9ffeab5f7bf68235e8b35d050c
parent a03fa955576af50df80bec9127b46ef57e0877c0
author Ivan Kokshaysky < XXXX@XXXXX.COM > Tue, 07 Jun 2005 04:07:02 +0400
committer Greg Kroah-Hartman < XXXX@XXXXX.COM > Fri, 01 Jul 2005 13:35:50 -0700

drivers/pci/probe.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -239,9 +239,8 @@ void __devinit pci_read_bridge_bases(str

if (dev->transparent) {
printk(KERN_INFO "PCI: Transparent bridge - %s\n", pci_name(dev));
- for(i = 0; i < PCI_BUS_NUM_RESOURCES; i++)
- child->resource[i] = child->parent->resource[i];
- return;
+ for(i = 3; i < PCI_BUS_NUM_RESOURCES; i++)
+ child->resource[i] = child->parent->resource[i - 3];
}

for(i=0; i<3; i++)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://www.yqcomputer.com/
Please read the FAQ at http://www.yqcomputer.com/
 
 
 

1. Updating PCI/PCI Express configuration values for PCI/PCI Express bridge

2. PCI Standard PCI-PCI Bridge Duplicated

For some time now I've had this conflict between my Hercules Prophet 4000XT
Video card and my network card. The PCI Standard PCI-PCI Bridge is
duplicated and both are linked to it. If I disable the one linked to the
NIC the video card is recognized by Win2k and works properly. Otherwise
there are memory and resource conflicts that I can not alter because
windows arrogantly will not allow it. ACPI management is an example of
mismanagement of MY computer. Is there a solution or do I need to get
another computer?

Paul

3. PCI Standard PCI-to-PCI Bridge

4. PCI Standard PCI-to-PCI bridge

5. Accessing PCI-to-PCI bridge in PCI Configuration Space

6. [PATCH 1/7]: PCI revised [PATCH 16/42]: PCI: PCI Error reporting callbacks

7. [PATCH 1/7]: PCI revised (2) [PATCH 16/42]: PCI: PCI Error reporting callbacks

8. [PATCH 1/7]: PCI revised (3) [PATCH 16/42]: PCI: PCI Error reporting callbacks

9. [PATCH 1/7]: PCI revised (2) [PATCH 16/42]: PCI: PCI Error reporting callbacks

10. [PATCH 1/7]: PCI revised [PATCH 16/42]: PCI: PCI Error reporting callbacks

11. [PATCH] PCI: drivers/pci/pci.c: #if 0 pci_find_ext_capability()

12. [PATCH] PCI: drivers/pci/pci.c: remove pci_dac_set_dma_mask

13. [PATCH] PCI: add linux-pci mailing list to PCI maintainers entry.

14. [PATCH] PCI Hotplug: PCI panic on dlpar add (add pci slot to running partition)

15. [patch 21/28] PCI: lets kill the PCI hidden behind bridge message