diff options
author | Stuart Henderson <sthen@cvs.openbsd.org> | 2009-06-11 22:44:15 +0000 |
---|---|---|
committer | Stuart Henderson <sthen@cvs.openbsd.org> | 2009-06-11 22:44:15 +0000 |
commit | 2c691c7cb711929101fd0b0ba05f7c3d40351c1d (patch) | |
tree | 853a3d9a3c53550abac4268384960e7df413d2d5 /sys/dev | |
parent | 9d73584f5ddab153bf77106a93fa44717ed3183b (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.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) | |