Lines Matching refs:offchannel

57 	if (!sc->cur_chan->offchannel && sc->cur_survey != &sc->survey[pos]) {
258 if (ctx == &sc->offchannel.chan) {
273 * the current context is offchannel.
426 "offchannel noa_duration: %d, noa_start: %u, noa_index: %d\n",
434 * an offchannel operation.
537 sc->next_chan = &sc->offchannel.chan;
593 * If an offchannel switch is scheduled to happen after
597 if (sc->next_chan == &sc->offchannel.chan) {
676 sc->cur_chan == &sc->offchannel.chan)
714 sc->cur_chan == &sc->offchannel.chan)
745 if (sc->cur_chan == &sc->offchannel.chan ||
755 sc->next_chan != &sc->offchannel.chan)
793 struct cfg80211_scan_request *req = sc->offchannel.scan_req;
809 (sc->cur_chan != ctx) && (ctx == &sc->offchannel.chan)) {
816 jiffies_to_usecs(sc->offchannel.duration) +
832 if (sc->next_chan == &sc->offchannel.chan) {
834 jiffies_to_usecs(sc->offchannel.duration) +
858 ath_chanctx_switch(sc, &sc->offchannel.chan, &chandef);
883 struct cfg80211_scan_request *req = sc->offchannel.scan_req;
886 if (sc->offchannel.scan_idx >= req->n_channels) {
888 "Moving offchannel state to ATH_OFFCHANNEL_IDLE, "
890 sc->offchannel.scan_idx,
893 sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
900 "Moving offchannel state to ATH_OFFCHANNEL_PROBE_SEND, scan_idx: %d\n",
901 sc->offchannel.scan_idx);
903 chan = req->channels[sc->offchannel.scan_idx++];
904 sc->offchannel.duration = ath_scan_channel_duration(sc, chan);
905 sc->offchannel.state = ATH_OFFCHANNEL_PROBE_SEND;
914 if (sc->offchannel.scan_req) {
915 vif = sc->offchannel.scan_vif;
916 sc->offchannel.chan.txpower = vif->bss_conf.txpower;
918 } else if (sc->offchannel.roc_vif) {
919 vif = sc->offchannel.roc_vif;
920 sc->offchannel.chan.txpower = vif->bss_conf.txpower;
921 sc->offchannel.duration =
922 msecs_to_jiffies(sc->offchannel.roc_duration);
923 sc->offchannel.state = ATH_OFFCHANNEL_ROC_START;
924 ath_chanctx_offchan_switch(sc, sc->offchannel.roc_chan);
933 sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
943 sc->offchannel.roc_vif = NULL;
944 sc->offchannel.roc_chan = NULL;
976 sc->offchannel.scan_req = NULL;
977 sc->offchannel.scan_vif = NULL;
978 sc->offchannel.state = ATH_OFFCHANNEL_IDLE;
992 struct cfg80211_scan_request *req = sc->offchannel.scan_req;
993 struct ieee80211_vif *vif = sc->offchannel.scan_vif;
997 int band = sc->offchannel.chan.chandef.chan->band;
1029 struct cfg80211_scan_request *req = sc->offchannel.scan_req;
1040 "Moving offchannel state to ATH_OFFCHANNEL_PROBE_WAIT\n");
1042 sc->offchannel.state = ATH_OFFCHANNEL_PROBE_WAIT;
1043 mod_timer(&sc->offchannel.timer, jiffies + sc->offchannel.duration);
1059 struct ath_softc *sc = from_timer(sc, t, offchannel.timer);
1063 ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
1064 __func__, offchannel_state_string(sc->offchannel.state));
1066 switch (sc->offchannel.state) {
1068 if (!sc->offchannel.scan_req)
1076 "move offchannel state to ATH_OFFCHANNEL_SUSPEND\n");
1078 sc->offchannel.state = ATH_OFFCHANNEL_SUSPEND;
1080 mod_timer(&sc->offchannel.timer, jiffies + HZ / 10);
1085 if (!sc->offchannel.scan_req)
1092 sc->offchannel.state = ATH_OFFCHANNEL_ROC_DONE;
1167 if (sc->cur_chan == &sc->offchannel.chan)
1193 ath_dbg(common, CHAN_CTX, "%s: offchannel state: %s\n",
1194 __func__, offchannel_state_string(sc->offchannel.state));
1196 switch (sc->offchannel.state) {
1198 if (!sc->offchannel.scan_req)
1202 sc->offchannel.chan.chandef.chan)
1208 if (!sc->offchannel.scan_req)
1214 if (sc->cur_chan != &sc->offchannel.chan)
1217 sc->offchannel.state = ATH_OFFCHANNEL_ROC_WAIT;
1218 mod_timer(&sc->offchannel.timer,
1219 jiffies + sc->offchannel.duration);
1262 if (sc->next_chan == &sc->offchannel.chan) {
1279 if (sc->cur_chan != &sc->offchannel.chan) {
1347 ctx = &sc->offchannel.chan;
1358 sc->offchannel.chan.offchannel = true;
1365 timer_setup(&sc->offchannel.timer, ath_offchannel_timer, 0);
1390 if (ctx == &sc->offchannel.chan) {
1409 if (ctx == &sc->offchannel.chan) {