diff options
author | bde <bde@FreeBSD.org> | 2006-12-26 18:33:55 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2006-12-26 18:33:55 +0000 |
commit | c087db26268681cdded833e18dee6c4b8b05a098 (patch) | |
tree | 3999dece02c324b9910873e7e17f80e053170678 | |
parent | 0c24cf64c64beae1b4a222af06a143802dd45cf7 (diff) | |
download | FreeBSD-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.
-rw-r--r-- | sys/dev/bge/if_bge.c | 10 |
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); |