summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorStuart Henderson <sthen@cvs.openbsd.org>2009-06-11 22:44:15 +0000
committerStuart Henderson <sthen@cvs.openbsd.org>2009-06-11 22:44:15 +0000
commit2c691c7cb711929101fd0b0ba05f7c3d40351c1d (patch)
tree853a3d9a3c53550abac4268384960e7df413d2d5 /sys/dev
parent9d73584f5ddab153bf77106a93fa44717ed3183b (diff)
Set the DMA read watermark to 4 on the BCM5703 chipset in PCI-X mode.
This is needed to prevent some TX timeouts. From Brad. Tested by myself on BCM5703 B0 on PCI-X 64/66
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/pci/if_bge.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index f26a8f5440b..d3d7ce8db6a 100644
--- a/sys/dev/pci/if_bge.c
+++ b/sys/dev/pci/if_bge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_bge.c,v 1.273 2009/06/06 14:25:38 sthen Exp $ */
+/* $OpenBSD: if_bge.c,v 1.274 2009/06/11 22:44:14 sthen Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -1223,6 +1223,10 @@ bge_chipinit(struct bge_softc *sc)
/* 1536 bytes for read, 384 bytes for write. */
dma_rw_ctl |= BGE_PCIDMARWCTL_RD_WAT_SHIFT(7) |
BGE_PCIDMARWCTL_WR_WAT_SHIFT(3);
+ } else if (BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5703) {
+ /* 512 bytes for read, 384 bytes for write. */
+ dma_rw_ctl |= BGE_PCIDMARWCTL_RD_WAT_SHIFT(4) |
+ BGE_PCIDMARWCTL_WR_WAT_SHIFT(3);
} else {
/* 384 bytes for read and write. */
dma_rw_ctl |= BGE_PCIDMARWCTL_RD_WAT_SHIFT(3) |