diff options
author | 2009-06-11 22:44:14 +0000 | |
---|---|---|
committer | 2009-06-11 22:44:14 +0000 | |
commit | 65ec6e7f610594d6aa5546495ee3b34d384b6d2b (patch) | |
tree | 62039a260fd563836b6f3b25b93bb0f63485b92e /sys/dev/pci/if_bge.c | |
parent | Simplify the ioctl handling code. From Brad. (diff) | |
download | wireguard-openbsd-65ec6e7f610594d6aa5546495ee3b34d384b6d2b.tar.xz wireguard-openbsd-65ec6e7f610594d6aa5546495ee3b34d384b6d2b.zip |
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/pci/if_bge.c')
-rw-r--r-- | sys/dev/pci/if_bge.c | 6 |
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) | |