diff options
author | jake <jake@FreeBSD.org> | 2003-03-27 02:01:59 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2003-03-27 02:01:59 +0000 |
commit | 723028725c0942c289096b00ca6052178be63c60 (patch) | |
tree | 141ab6bf2249542d658636690fefe4a6558f1c63 /sys/sparc64/pci | |
parent | e173b93e2a0f714108298109cc176888cc9cc55b (diff) | |
download | FreeBSD-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.c | 4 |
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) { |