summaryrefslogtreecommitdiffstats
path: root/sys/dev/iwn/if_iwn.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2011-05-15 15:47:16 +0000
committerattilio <attilio@FreeBSD.org>2011-05-15 15:47:16 +0000
commitd7d74971f13d3dd8b23b648b471dd209deef841f (patch)
treeb8c92b94db6c0893eb3cc61ecd7bb49b265937a8 /sys/dev/iwn/if_iwn.c
parente0bdfaa331e0646b286138c0a1ebde578634f499 (diff)
parent18b26669453903e860135019c9ef861b23c4df7b (diff)
downloadFreeBSD-src-d7d74971f13d3dd8b23b648b471dd209deef841f.zip
FreeBSD-src-d7d74971f13d3dd8b23b648b471dd209deef841f.tar.gz
MFC
Diffstat (limited to 'sys/dev/iwn/if_iwn.c')
-rw-r--r--sys/dev/iwn/if_iwn.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index 11c5238..29e391f 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -3527,7 +3527,8 @@ iwn_tx_data(struct iwn_softc *sc, struct mbuf *m, struct ieee80211_node *ni)
BUS_DMASYNC_PREWRITE);
/* Update TX scheduler. */
- ops->update_sched(sc, ring->qid, ring->cur, tx->id, totlen);
+ if (ring->qid >= sc->firstaggqueue)
+ ops->update_sched(sc, ring->qid, ring->cur, tx->id, totlen);
/* Kick TX ring. */
ring->cur = (ring->cur + 1) % IWN_TX_RING_COUNT;
@@ -3730,7 +3731,8 @@ iwn_tx_data_raw(struct iwn_softc *sc, struct mbuf *m,
BUS_DMASYNC_PREWRITE);
/* Update TX scheduler. */
- ops->update_sched(sc, ring->qid, ring->cur, tx->id, totlen);
+ if (ring->qid >= sc->firstaggqueue)
+ ops->update_sched(sc, ring->qid, ring->cur, tx->id, totlen);
/* Kick TX ring. */
ring->cur = (ring->cur + 1) % IWN_TX_RING_COUNT;
@@ -3894,7 +3896,6 @@ iwn_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
static int
iwn_cmd(struct iwn_softc *sc, int code, const void *buf, int size, int async)
{
- struct iwn_ops *ops = &sc->ops;
struct iwn_tx_ring *ring = &sc->txq[4];
struct iwn_tx_desc *desc;
struct iwn_tx_data *data;
@@ -3954,9 +3955,6 @@ iwn_cmd(struct iwn_softc *sc, int code, const void *buf, int size, int async)
bus_dmamap_sync(ring->desc_dma.tag, ring->desc_dma.map,
BUS_DMASYNC_PREWRITE);
- /* Update TX scheduler. */
- ops->update_sched(sc, ring->qid, ring->cur, 0, 0);
-
/* Kick command ring. */
ring->cur = (ring->cur + 1) % IWN_TX_RING_COUNT;
IWN_WRITE(sc, IWN_HBUS_TARG_WRPTR, ring->qid << 8 | ring->cur);
OpenPOWER on IntegriCloud