iwlegacy: small refactoring of il_{stop,wake}_queue

Tested-by: Jake Edge <jake@lwn.net>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Stanislaw Gruszka 2013-06-12 16:44:47 +02:00 committed by John W. Linville
parent 0967e01e8e
commit 42ce8943e1

View File

@ -2256,6 +2256,19 @@ il_set_swq_id(struct il_tx_queue *txq, u8 ac, u8 hwq)
txq->swq_id = (hwq << 2) | ac; txq->swq_id = (hwq << 2) | ac;
} }
static inline void
_il_wake_queue(struct il_priv *il, u8 ac)
{
if (atomic_dec_return(&il->queue_stop_count[ac]) <= 0)
ieee80211_wake_queue(il->hw, ac);
}
static inline void
_il_stop_queue(struct il_priv *il, u8 ac)
{
if (atomic_inc_return(&il->queue_stop_count[ac]) > 0)
ieee80211_stop_queue(il->hw, ac);
}
static inline void static inline void
il_wake_queue(struct il_priv *il, struct il_tx_queue *txq) il_wake_queue(struct il_priv *il, struct il_tx_queue *txq)
{ {
@ -2264,8 +2277,7 @@ il_wake_queue(struct il_priv *il, struct il_tx_queue *txq)
u8 hwq = (queue >> 2) & 0x1f; u8 hwq = (queue >> 2) & 0x1f;
if (test_and_clear_bit(hwq, il->queue_stopped)) if (test_and_clear_bit(hwq, il->queue_stopped))
if (atomic_dec_return(&il->queue_stop_count[ac]) <= 0) _il_wake_queue(il, ac);
ieee80211_wake_queue(il->hw, ac);
} }
static inline void static inline void
@ -2276,8 +2288,7 @@ il_stop_queue(struct il_priv *il, struct il_tx_queue *txq)
u8 hwq = (queue >> 2) & 0x1f; u8 hwq = (queue >> 2) & 0x1f;
if (!test_and_set_bit(hwq, il->queue_stopped)) if (!test_and_set_bit(hwq, il->queue_stopped))
if (atomic_inc_return(&il->queue_stop_count[ac]) > 0) _il_stop_queue(il, ac);
ieee80211_stop_queue(il->hw, ac);
} }
#ifdef ieee80211_stop_queue #ifdef ieee80211_stop_queue