aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev/indirect_pci.c
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2008-06-30 09:57:05 +1000
committerPaul Mackerras <paulus@samba.org>2008-06-30 09:57:05 +1000
commit441dbb500b4344a8e3125e5aabab4f9dbf72514f (patch)
tree3bb8fb1a88db3f5d03062a4887312f25c2e8041d /arch/powerpc/sysdev/indirect_pci.c
parentdee805532a30183c4462305b4614e58bd83a7bc1 (diff)
parent5ce4b59653b2c2053cd9a011918ac1e4747f24cc (diff)
Merge branch 'next' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx
Diffstat (limited to 'arch/powerpc/sysdev/indirect_pci.c')
-rw-r--r--arch/powerpc/sysdev/indirect_pci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/indirect_pci.c b/arch/powerpc/sysdev/indirect_pci.c
index cfbd2aae93e..7fd49c97501 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,
(bus->number == hose->first_busno))
val &= 0xffffff00;
+ /* Workaround for PCI_28 Errata in 440EPx/GRx */
+ if ((hose->indirect_type & PPC_INDIRECT_TYPE_BROKEN_MRM) &&
+ offset == PCI_CACHE_LINE_SIZE) {
+ val = 0;
+ }
+
/*
* Note: the caller has already checked that offset is
* suitably aligned and that len is 1, 2 or 4.