Lines Matching refs:offchannel
57 if (!sc->cur_chan->offchannel && sc->cur_survey != &sc->survey[pos]) { in ath_set_channel()
258 if (ctx == &sc->offchannel.chan) { in ath_chanctx_check_active()
537 sc->next_chan = &sc->offchannel.chan; in ath_chanctx_event()
597 if (sc->next_chan == &sc->offchannel.chan) { in ath_chanctx_event()
676 sc->cur_chan == &sc->offchannel.chan) in ath_chanctx_event()
714 sc->cur_chan == &sc->offchannel.chan) in ath_chanctx_event()
745 if (sc->cur_chan == &sc->offchannel.chan || in ath_chanctx_event()
755 sc->next_chan != &sc->offchannel.chan) in ath_chanctx_event()
793 struct cfg80211_scan_request *req = sc->offchannel.scan_req; in ath_scan_channel_duration()
809 (sc->cur_chan != ctx) && (ctx == &sc->offchannel.chan)) { in ath_chanctx_switch()
816 jiffies_to_usecs(sc->offchannel.duration) + in ath_chanctx_switch()
832 if (sc->next_chan == &sc->offchannel.chan) { in ath_chanctx_switch()
834 jiffies_to_usecs(sc->offchannel.duration) + in ath_chanctx_switch()
858 ath_chanctx_switch(sc, &sc->offchannel.chan, &chandef); in ath_chanctx_offchan_switch()
883 struct cfg80211_scan_request *req = sc->offchannel.scan_req; in ath_scan_next_channel()
886 if (sc->offchannel.scan_idx >= req->n_channels) { in ath_scan_next_channel()
890 sc->offchannel.scan_idx, in ath_scan_next_channel()
893 sc->offchannel.state = ATH_OFFCHANNEL_IDLE; in ath_scan_next_channel()
901 sc->offchannel.scan_idx); in ath_scan_next_channel()
903 chan = req->channels[sc->offchannel.scan_idx++]; in ath_scan_next_channel()
904 sc->offchannel.duration = ath_scan_channel_duration(sc, chan); in ath_scan_next_channel()
905 sc->offchannel.state = ATH_OFFCHANNEL_PROBE_SEND; in ath_scan_next_channel()
914 if (sc->offchannel.scan_req) { in ath_offchannel_next()
915 vif = sc->offchannel.scan_vif; in ath_offchannel_next()
916 sc->offchannel.chan.txpower = vif->bss_conf.txpower; in ath_offchannel_next()
918 } else if (sc->offchannel.roc_vif) { in ath_offchannel_next()
919 vif = sc->offchannel.roc_vif; in ath_offchannel_next()
920 sc->offchannel.chan.txpower = vif->bss_conf.txpower; in ath_offchannel_next()
921 sc->offchannel.duration = in ath_offchannel_next()
922 msecs_to_jiffies(sc->offchannel.roc_duration); in ath_offchannel_next()
923 sc->offchannel.state = ATH_OFFCHANNEL_ROC_START; in ath_offchannel_next()
924 ath_chanctx_offchan_switch(sc, sc->offchannel.roc_chan); in ath_offchannel_next()
933 sc->offchannel.state = ATH_OFFCHANNEL_IDLE; in ath_offchannel_next()
943 sc->offchannel.roc_vif = NULL; in ath_roc_complete()
944 sc->offchannel.roc_chan = NULL; in ath_roc_complete()
976 sc->offchannel.scan_req = NULL; in ath_scan_complete()
977 sc->offchannel.scan_vif = NULL; in ath_scan_complete()
978 sc->offchannel.state = ATH_OFFCHANNEL_IDLE; in ath_scan_complete()
992 struct cfg80211_scan_request *req = sc->offchannel.scan_req; in ath_scan_send_probe()
993 struct ieee80211_vif *vif = sc->offchannel.scan_vif; in ath_scan_send_probe()
997 int band = sc->offchannel.chan.chandef.chan->band; in ath_scan_send_probe()
1029 struct cfg80211_scan_request *req = sc->offchannel.scan_req; in ath_scan_channel_start()
1042 sc->offchannel.state = ATH_OFFCHANNEL_PROBE_WAIT; in ath_scan_channel_start()
1043 mod_timer(&sc->offchannel.timer, jiffies + sc->offchannel.duration); in ath_scan_channel_start()
1059 struct ath_softc *sc = from_timer(sc, t, offchannel.timer); in ath_offchannel_timer()
1064 __func__, offchannel_state_string(sc->offchannel.state)); in ath_offchannel_timer()
1066 switch (sc->offchannel.state) { in ath_offchannel_timer()
1068 if (!sc->offchannel.scan_req) in ath_offchannel_timer()
1078 sc->offchannel.state = ATH_OFFCHANNEL_SUSPEND; in ath_offchannel_timer()
1080 mod_timer(&sc->offchannel.timer, jiffies + HZ / 10); in ath_offchannel_timer()
1085 if (!sc->offchannel.scan_req) in ath_offchannel_timer()
1092 sc->offchannel.state = ATH_OFFCHANNEL_ROC_DONE; in ath_offchannel_timer()
1167 if (sc->cur_chan == &sc->offchannel.chan) in ath_chanctx_defer_switch()
1194 __func__, offchannel_state_string(sc->offchannel.state)); in ath_offchannel_channel_change()
1196 switch (sc->offchannel.state) { in ath_offchannel_channel_change()
1198 if (!sc->offchannel.scan_req) in ath_offchannel_channel_change()
1202 sc->offchannel.chan.chandef.chan) in ath_offchannel_channel_change()
1208 if (!sc->offchannel.scan_req) in ath_offchannel_channel_change()
1214 if (sc->cur_chan != &sc->offchannel.chan) in ath_offchannel_channel_change()
1217 sc->offchannel.state = ATH_OFFCHANNEL_ROC_WAIT; in ath_offchannel_channel_change()
1218 mod_timer(&sc->offchannel.timer, in ath_offchannel_channel_change()
1219 jiffies + sc->offchannel.duration); in ath_offchannel_channel_change()
1262 if (sc->next_chan == &sc->offchannel.chan) { in ath_chanctx_set_next()
1279 if (sc->cur_chan != &sc->offchannel.chan) { in ath_chanctx_set_next()
1347 ctx = &sc->offchannel.chan; in ath9k_offchannel_init()
1358 sc->offchannel.chan.offchannel = true; in ath9k_offchannel_init()
1365 timer_setup(&sc->offchannel.timer, ath_offchannel_timer, 0); in ath9k_init_channel_context()
1390 if (ctx == &sc->offchannel.chan) { in ath9k_chanctx_stop_queues()
1409 if (ctx == &sc->offchannel.chan) { in ath9k_chanctx_wake_queues()