aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorPyun YongHyeon <yongari@FreeBSD.org>2008-03-23 05:13:45 +0000
committerPyun YongHyeon <yongari@FreeBSD.org>2008-03-23 05:13:45 +0000
commitce6283934ecd8cf04ef9eee88356024b270b1628 (patch)
tree0c97427f81431b0e64f7aa60b65428c06a63709d /sys/dev
parentccf34c81f84d9366633bbe60132bb786736a75e8 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/re/if_re.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index 8cf2b7cc9606..538a5657afb5 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -989,9 +989,14 @@ re_allocmem(dev, sc)
/*
* Allocate the parent bus DMA tag appropriate for PCI.
+ * In order to use DAC, RL_CPLUSCMD_PCI_DAC bit of RL_CPLUS_CMD
+ * register should be set. However some RealTek chips are known
+ * to be buggy on DAC handling, therefore disable DAC by limiting
+ * DMA address space to 32bit. PCIe variants of RealTek chips
+ * may not have the limitation but I took safer path.
*/
error = bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0,
- BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL,
+ BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL,
BUS_SPACE_MAXSIZE_32BIT, 0, BUS_SPACE_MAXSIZE_32BIT, 0,
NULL, NULL, &sc->rl_parent_tag);
if (error) {