diff options
author | Luis R. Rodriguez <lrodriguez@atheros.com> | 2008-10-22 16:28:43 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-10-31 19:00:52 -0400 |
commit | b139a10a0aaf3c8041af348c2268d59e1610dc83 (patch) | |
tree | 2229616b5de61af9408c8ed60478b692327c9697 /drivers/net/wireless/ath9k/xmit.c | |
parent | d9d2925713d92bbe33b2edff3d7de1ce5646ab54 (diff) |
ath9k: remove pointless sc_txintrperiod and spin_lock_bh on tx prepare
sc_txintrperiod is currently set to 0 and never updated. We won't
be using this, if anything we will consider using TX interrupt
mitigation but that is different and not yet tested. So remove
sc_txintrperiod and the pointless spin_lock_bh() on tx prepare.
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath9k/xmit.c')
-rw-r--r-- | drivers/net/wireless/ath9k/xmit.c | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c index 9fa395418a6c..8073c71b3a67 100644 --- a/drivers/net/wireless/ath9k/xmit.c +++ b/drivers/net/wireless/ath9k/xmit.c | |||
@@ -286,7 +286,8 @@ static int ath_tx_prepare(struct ath_softc *sc, | |||
286 | 286 | ||
287 | /* Fill flags */ | 287 | /* Fill flags */ |
288 | 288 | ||
289 | txctl->flags |= ATH9K_TXDESC_CLRDMASK; /* needed for crypto errors */ | 289 | txctl->flags |= ATH9K_TXDESC_CLRDMASK /* needed for crypto errors */ |
290 | | ATH9K_TXDESC_INTREQ; /* Generate an interrupt */ | ||
290 | 291 | ||
291 | if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) | 292 | if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) |
292 | txctl->flags |= ATH9K_TXDESC_NOACK; | 293 | txctl->flags |= ATH9K_TXDESC_NOACK; |
@@ -363,28 +364,6 @@ static int ath_tx_prepare(struct ath_softc *sc, | |||
363 | rcs[0].tries = ATH_TXMAXTRY; | 364 | rcs[0].tries = ATH_TXMAXTRY; |
364 | } | 365 | } |
365 | 366 | ||
366 | /* | ||
367 | * Determine if a tx interrupt should be generated for | ||
368 | * this descriptor. We take a tx interrupt to reap | ||
369 | * descriptors when the h/w hits an EOL condition or | ||
370 | * when the descriptor is specifically marked to generate | ||
371 | * an interrupt. We periodically mark descriptors in this | ||
372 | * way to insure timely replenishing of the supply needed | ||
373 | * for sending frames. Defering interrupts reduces system | ||
374 | * load and potentially allows more concurrent work to be | ||
375 | * done but if done to aggressively can cause senders to | ||
376 | * backup. | ||
377 | * | ||
378 | * NB: use >= to deal with sc_txintrperiod changing | ||
379 | * dynamically through sysctl. | ||
380 | */ | ||
381 | spin_lock_bh(&txq->axq_lock); | ||
382 | if ((++txq->axq_intrcnt >= sc->sc_txintrperiod)) { | ||
383 | txctl->flags |= ATH9K_TXDESC_INTREQ; | ||
384 | txq->axq_intrcnt = 0; | ||
385 | } | ||
386 | spin_unlock_bh(&txq->axq_lock); | ||
387 | |||
388 | if (is_multicast_ether_addr(hdr->addr1)) { | 367 | if (is_multicast_ether_addr(hdr->addr1)) { |
389 | antenna = sc->sc_mcastantenna + 1; | 368 | antenna = sc->sc_mcastantenna + 1; |
390 | sc->sc_mcastantenna = (sc->sc_mcastantenna + 1) & 0x1; | 369 | sc->sc_mcastantenna = (sc->sc_mcastantenna + 1) & 0x1; |
@@ -1166,7 +1145,6 @@ static int ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) | |||
1166 | nacked = 0; | 1145 | nacked = 0; |
1167 | for (;;) { | 1146 | for (;;) { |
1168 | spin_lock_bh(&txq->axq_lock); | 1147 | spin_lock_bh(&txq->axq_lock); |
1169 | txq->axq_intrcnt = 0; /* reset periodic desc intr count */ | ||
1170 | if (list_empty(&txq->axq_q)) { | 1148 | if (list_empty(&txq->axq_q)) { |
1171 | txq->axq_link = NULL; | 1149 | txq->axq_link = NULL; |
1172 | txq->axq_linkbuf = NULL; | 1150 | txq->axq_linkbuf = NULL; |
@@ -2164,7 +2142,6 @@ struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype) | |||
2164 | txq->axq_depth = 0; | 2142 | txq->axq_depth = 0; |
2165 | txq->axq_aggr_depth = 0; | 2143 | txq->axq_aggr_depth = 0; |
2166 | txq->axq_totalqueued = 0; | 2144 | txq->axq_totalqueued = 0; |
2167 | txq->axq_intrcnt = 0; | ||
2168 | txq->axq_linkbuf = NULL; | 2145 | txq->axq_linkbuf = NULL; |
2169 | sc->sc_txqsetup |= 1<<qnum; | 2146 | sc->sc_txqsetup |= 1<<qnum; |
2170 | } | 2147 | } |