diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-06-11 06:47:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-06-19 15:49:17 -0400 |
commit | 405393cfde07781c21cdee28b145919d6dfe382e (patch) | |
tree | c840e3690eb6b988d320d4bb44a75b6cdc15c220 /drivers/net/wireless/ath/ath9k/xmit.c | |
parent | 78b21949711ee3c877f1aab5b51abe1981e1161d (diff) |
ath9k: Implement remain-on-channal support
Add remain on channel support in order to enable multi-channel
concurrency.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/xmit.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 7972e1e24dd2..22460a1e033c 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -2197,6 +2197,9 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2197 | if (vif) | 2197 | if (vif) |
2198 | avp = (void *)vif->drv_priv; | 2198 | avp = (void *)vif->drv_priv; |
2199 | 2199 | ||
2200 | if (info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) | ||
2201 | txctl->force_channel = true; | ||
2202 | |||
2200 | ret = ath_tx_prepare(hw, skb, txctl); | 2203 | ret = ath_tx_prepare(hw, skb, txctl); |
2201 | if (ret) | 2204 | if (ret) |
2202 | return ret; | 2205 | return ret; |
@@ -2234,7 +2237,8 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
2234 | if (txctl->an && queue) | 2237 | if (txctl->an && queue) |
2235 | tid = ath_get_skb_tid(sc, txctl->an, skb); | 2238 | tid = ath_get_skb_tid(sc, txctl->an, skb); |
2236 | 2239 | ||
2237 | if (info->flags & IEEE80211_TX_CTL_PS_RESPONSE) { | 2240 | if (info->flags & (IEEE80211_TX_CTL_PS_RESPONSE | |
2241 | IEEE80211_TX_CTL_TX_OFFCHAN)) { | ||
2238 | ath_txq_unlock(sc, txq); | 2242 | ath_txq_unlock(sc, txq); |
2239 | txq = sc->tx.uapsdq; | 2243 | txq = sc->tx.uapsdq; |
2240 | ath_txq_lock(sc, txq); | 2244 | ath_txq_lock(sc, txq); |