summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ti/wlcore/event.c
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2012-11-20 11:20:03 (GMT)
committerLuciano Coelho <coelho@ti.com>2012-11-27 08:48:26 (GMT)
commitdabf37dba405565ab46f4d1821c781730285b9ed (patch)
tree1d36fba598edb119da492f5d6cc91b743c10a1c9 /drivers/net/wireless/ti/wlcore/event.c
parent18eab430700dc877bae38cf04f0b0574b4724f0a (diff)
downloadlinux-fsl-qoriq-dabf37dba405565ab46f4d1821c781730285b9ed.tar.xz
wlcore: implement .remain_on_channel() callback
implement the reamin_on_channel() callback by starting a dev role (already associated with the current vif) on the requested channel/band. This channel is usually different from the channel of the sta role, so pass it to wl12xx_roc() as well, and notify mac80211 (async) when the fw is ready on the new channel. Now, in case of offchannel tx, we should use the dev role hlid, instead of the sta hlid. Signed-off-by: Eliad Peller <eliad@wizery.com> Reviewed-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wlcore/event.c')
-rw-r--r--drivers/net/wireless/ti/wlcore/event.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/event.c b/drivers/net/wireless/ti/wlcore/event.c
index 4890705..cf45aaf 100644
--- a/drivers/net/wireless/ti/wlcore/event.c
+++ b/drivers/net/wireless/ti/wlcore/event.c
@@ -250,6 +250,13 @@ static int wl1271_event_process(struct wl1271 *wl)
disconnect_sta = true;
}
+ if (vector & REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID) {
+ wl1271_debug(DEBUG_EVENT,
+ "REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID");
+ if (wl->roc_vif)
+ ieee80211_ready_on_channel(wl->hw);
+ }
+
if (disconnect_sta) {
u32 num_packets = wl->conf.tx.max_tx_retries;
struct ieee80211_sta *sta;