summaryrefslogtreecommitdiffstats
path: root/sys/dev/bge
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2006-12-26 18:33:55 +0000
committerbde <bde@FreeBSD.org>2006-12-26 18:33:55 +0000
commitc087db26268681cdded833e18dee6c4b8b05a098 (patch)
tree3999dece02c324b9910873e7e17f80e053170678 /sys/dev/bge
parent0c24cf64c64beae1b4a222af06a143802dd45cf7 (diff)
downloadFreeBSD-src-c087db26268681cdded833e18dee6c4b8b05a098.zip
FreeBSD-src-c087db26268681cdded833e18dee6c4b8b05a098.tar.gz
After rev.1.169, the "interrupt" coalescing parameters are not used in
bge_intr(). Some of them are used in bge_poll(). Simplify by only initializing these for polling mode and not toggling them when switching modes. This also fixes missing synchronization with the coalescing engine in the toggling.
Diffstat (limited to 'sys/dev/bge')
-rw-r--r--sys/dev/bge/if_bge.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 75bff43..a036cfe 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -1473,8 +1473,8 @@ bge_blockinit(struct bge_softc *sc)
CSR_WRITE_4(sc, BGE_HCC_RX_COAL_TICKS_INT, 0);
CSR_WRITE_4(sc, BGE_HCC_TX_COAL_TICKS_INT, 0);
}
- CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS_INT, 0);
- CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS_INT, 0);
+ CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS_INT, 1);
+ CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS_INT, 1);
/* Set up address of statistics block */
if (!(BGE_IS_5705_PLUS(sc))) {
@@ -3538,8 +3538,6 @@ bge_init_locked(struct bge_softc *sc)
BGE_SETBIT(sc, BGE_PCI_MISC_CTL,
BGE_PCIMISCCTL_MASK_PCI_INTR);
CSR_WRITE_4(sc, BGE_MBX_IRQ0_LO, 1);
- CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS_INT, 1);
- CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS_INT, 1);
} else
#endif
@@ -3769,16 +3767,12 @@ bge_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
BGE_SETBIT(sc, BGE_PCI_MISC_CTL,
BGE_PCIMISCCTL_MASK_PCI_INTR);
CSR_WRITE_4(sc, BGE_MBX_IRQ0_LO, 1);
- CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS_INT, 1);
- CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS_INT, 1);
ifp->if_capenable |= IFCAP_POLLING;
BGE_UNLOCK(sc);
} else {
error = ether_poll_deregister(ifp);
/* Enable interrupt even in error case */
BGE_LOCK(sc);
- CSR_WRITE_4(sc, BGE_HCC_RX_MAX_COAL_BDS_INT, 0);
- CSR_WRITE_4(sc, BGE_HCC_TX_MAX_COAL_BDS_INT, 0);
BGE_CLRBIT(sc, BGE_PCI_MISC_CTL,
BGE_PCIMISCCTL_MASK_PCI_INTR);
CSR_WRITE_4(sc, BGE_MBX_IRQ0_LO, 0);
OpenPOWER on IntegriCloud