diff options
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/sysdev/indirect_pci.c | 6 | ||||
-rw-r--r-- | arch/powerpc/sysdev/ppc4xx_pci.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/indirect_pci.c b/arch/powerpc/sysdev/indirect_pci.c index cfbd2aae93e8..7fd49c97501a 100644 --- a/arch/powerpc/sysdev/indirect_pci.c +++ b/arch/powerpc/sysdev/indirect_pci.c | |||
@@ -123,6 +123,12 @@ indirect_write_config(struct pci_bus *bus, unsigned int devfn, int offset, | |||
123 | (bus->number == hose->first_busno)) | 123 | (bus->number == hose->first_busno)) |
124 | val &= 0xffffff00; | 124 | val &= 0xffffff00; |
125 | 125 | ||
126 | /* Workaround for PCI_28 Errata in 440EPx/GRx */ | ||
127 | if ((hose->indirect_type & PPC_INDIRECT_TYPE_BROKEN_MRM) && | ||
128 | offset == PCI_CACHE_LINE_SIZE) { | ||
129 | val = 0; | ||
130 | } | ||
131 | |||
126 | /* | 132 | /* |
127 | * Note: the caller has already checked that offset is | 133 | * Note: the caller has already checked that offset is |
128 | * suitably aligned and that len is 1, 2 or 4. | 134 | * suitably aligned and that len is 1, 2 or 4. |
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c index 76886cf0e6dc..fb368dfde5d4 100644 --- a/arch/powerpc/sysdev/ppc4xx_pci.c +++ b/arch/powerpc/sysdev/ppc4xx_pci.c | |||
@@ -75,6 +75,11 @@ static void fixup_ppc4xx_pci_bridge(struct pci_dev *dev) | |||
75 | !of_device_is_compatible(hose->dn, "ibm,plb-pci")) | 75 | !of_device_is_compatible(hose->dn, "ibm,plb-pci")) |
76 | return; | 76 | return; |
77 | 77 | ||
78 | if (of_device_is_compatible(hose->dn, "ibm,plb440epx-pci") || | ||
79 | of_device_is_compatible(hose->dn, "ibm,plb440grx-pci")) { | ||
80 | hose->indirect_type |= PPC_INDIRECT_TYPE_BROKEN_MRM; | ||
81 | } | ||
82 | |||
78 | /* Hide the PCI host BARs from the kernel as their content doesn't | 83 | /* Hide the PCI host BARs from the kernel as their content doesn't |
79 | * fit well in the resource management | 84 | * fit well in the resource management |
80 | */ | 85 | */ |