summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/pci
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2003-03-27 02:01:59 +0000
committerjake <jake@FreeBSD.org>2003-03-27 02:01:59 +0000
commit723028725c0942c289096b00ca6052178be63c60 (patch)
tree141ab6bf2249542d658636690fefe4a6558f1c63 /sys/sparc64/pci
parente173b93e2a0f714108298109cc176888cc9cc55b (diff)
downloadFreeBSD-src-723028725c0942c289096b00ca6052178be63c60.zip
FreeBSD-src-723028725c0942c289096b00ca6052178be63c60.tar.gz
Set the cache line size for subordinate pci bridges as well as for their
child devices. This fixes dma timeouts for devices behind the bridge. Reported by: simokawa Tested by: simokawa
Diffstat (limited to 'sys/sparc64/pci')
-rw-r--r--sys/sparc64/pci/ofw_pci.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/sparc64/pci/ofw_pci.c b/sys/sparc64/pci/ofw_pci.c
index 3787a00..829ad60 100644
--- a/sys/sparc64/pci/ofw_pci.c
+++ b/sys/sparc64/pci/ofw_pci.c
@@ -216,6 +216,8 @@ ofw_pci_init(device_t dev, phandle_t bushdl, u_int32_t ign,
panic("ofw_pci_init: OF_getprop failed");
slot = OFW_PCI_PHYS_HI_DEVICE(pcir.phys_hi);
func = OFW_PCI_PHYS_HI_FUNCTION(pcir.phys_hi);
+ PCIB_WRITE_CONFIG(dev, busno, slot, func, PCIR_CACHELNSZ,
+ clnsz / 4, 1);
if (strcmp(type, OFW_PCI_PCIBUS) == 0) {
/*
* This is a pci-pci bridge, initalize the bus number and
@@ -269,8 +271,6 @@ ofw_pci_init(device_t dev, phandle_t bushdl, u_int32_t ign,
PCIB_WRITE_CONFIG(dev, busno, slot, func,
PCIR_LATTIMER, imin(lat, 255), 1);
}
- PCIB_WRITE_CONFIG(dev, busno, slot, func,
- PCIR_CACHELNSZ, clnsz / 4, 1);
/* Initialize the intline registers. */
if ((intr = ofw_pci_route_intr(node, ign)) != 255) {
OpenPOWER on IntegriCloud