Lines Matching refs:sched
243 if (likely(sc->sched.channel_switch_time)) in ath_chanctx_check_active()
245 usecs_to_jiffies(sc->sched.channel_switch_time); in ath_chanctx_check_active()
293 ictx->flush_timeout = usecs_to_jiffies(sc->sched.channel_switch_time); in ath_chanctx_check_active()
363 mod_timer(&sc->sched.timer, jiffies + tsf_time); in ath_chanctx_setup_timer()
379 if (ctx->active && sc->sched.extend_absence) { in ath_chanctx_handle_bmiss()
381 sc->sched.extend_absence = false; in ath_chanctx_handle_bmiss()
388 if (ctx->active && sc->sched.beacon_miss >= 2) { in ath_chanctx_handle_bmiss()
390 sc->sched.extend_absence = true; in ath_chanctx_handle_bmiss()
403 avp->offchannel_duration = sc->sched.offchannel_duration; in ath_chanctx_offchannel_noa()
431 if (sc->sched.extend_absence) in ath_chanctx_set_periodic_noa()
433 sc->sched.channel_switch_time; in ath_chanctx_set_periodic_noa()
437 sc->sched.channel_switch_time; in ath_chanctx_set_periodic_noa()
440 sc->sched.extend_absence) in ath_chanctx_set_periodic_noa()
464 avp->noa_duration = duration + sc->sched.channel_switch_time; in ath_chanctx_set_oneshot_noa()
493 chanctx_state_string(sc->sched.state)); in ath_chanctx_event()
514 if (sc->sched.offchannel_pending && !sc->sched.wait_switch) { in ath_chanctx_event()
515 sc->sched.offchannel_pending = false; in ath_chanctx_event()
517 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
523 if (ctx->active && sc->sched.state == ATH_CHANCTX_STATE_IDLE) { in ath_chanctx_event()
525 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
531 if (sc->sched.state == ATH_CHANCTX_STATE_WAIT_FOR_TIMER) { in ath_chanctx_event()
532 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
537 if (sc->sched.mgd_prepare_tx) in ath_chanctx_event()
538 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
547 sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) { in ath_chanctx_event()
555 if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) in ath_chanctx_event()
560 sc->sched.beacon_pending = true; in ath_chanctx_event()
561 sc->sched.next_tbtt = REG_READ(ah, AR_NEXT_TBTT_TIMER); in ath_chanctx_event()
567 tsf_time = sc->sched.next_tbtt + beacon_int / 4; in ath_chanctx_event()
568 sc->sched.switch_start_time = tsf_time; in ath_chanctx_event()
569 sc->cur_chan->last_beacon = sc->sched.next_tbtt; in ath_chanctx_event()
589 if (sc->sched.mgd_prepare_tx) { in ath_chanctx_event()
605 (!avp->noa_duration || sc->sched.force_noa_update)) in ath_chanctx_event()
609 if (ctx->active && sc->sched.force_noa_update) in ath_chanctx_event()
610 sc->sched.force_noa_update = false; in ath_chanctx_event()
614 if (!sc->sched.beacon_pending) { in ath_chanctx_event()
620 sc->sched.beacon_pending = false; in ath_chanctx_event()
622 if (sc->sched.mgd_prepare_tx) { in ath_chanctx_event()
623 sc->sched.mgd_prepare_tx = false; in ath_chanctx_event()
630 if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) in ath_chanctx_event()
636 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_TIMER; in ath_chanctx_event()
637 ath_chanctx_setup_timer(sc, sc->sched.switch_start_time); in ath_chanctx_event()
640 if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_TIMER) in ath_chanctx_event()
644 sc->sched.beacon_pending) in ath_chanctx_event()
645 sc->sched.beacon_miss++; in ath_chanctx_event()
650 sc->sched.state = ATH_CHANCTX_STATE_SWITCH; in ath_chanctx_event()
658 sc->sched.beacon_pending = false; in ath_chanctx_event()
659 sc->sched.beacon_miss = 0; in ath_chanctx_event()
661 if (sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE || in ath_chanctx_event()
662 !sc->sched.beacon_adjust || in ath_chanctx_event()
671 tsf_time = sc->sched.switch_start_time; in ath_chanctx_event()
676 sc->sched.beacon_adjust = false; in ath_chanctx_event()
680 if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE || in ath_chanctx_event()
687 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_event()
691 sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE || in ath_chanctx_event()
705 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_TIMER; in ath_chanctx_event()
706 sc->sched.wait_switch = false; in ath_chanctx_event()
710 if (sc->sched.extend_absence) { in ath_chanctx_event()
711 sc->sched.beacon_miss = 0; in ath_chanctx_event()
715 tsf_time -= sc->sched.channel_switch_time; in ath_chanctx_event()
717 sc->sched.switch_start_time = tsf_time; in ath_chanctx_event()
720 sc->sched.beacon_pending = true; in ath_chanctx_event()
721 sc->sched.beacon_adjust = true; in ath_chanctx_event()
735 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_event()
740 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_event()
759 if (sc->sched.beacon_pending) in ath_chanctx_beacon_sent_ev()
792 sc->sched.offchannel_pending = true; in ath_chanctx_switch()
793 sc->sched.wait_switch = true; in ath_chanctx_switch()
794 sc->sched.offchannel_duration = in ath_chanctx_switch()
796 sc->sched.channel_switch_time; in ath_chanctx_switch()
812 sc->sched.offchannel_duration = in ath_chanctx_switch()
814 sc->sched.channel_switch_time; in ath_chanctx_switch()
820 sc->sched.offchannel_duration); in ath_chanctx_switch()
906 sc->sched.offchannel_pending = false; in ath_offchannel_next()
907 sc->sched.wait_switch = false; in ath_offchannel_next()
950 sc->sched.force_noa_update = true; in ath_scan_complete()
1138 switch (sc->sched.state) { in ath_chanctx_defer_switch()
1148 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_defer_switch()
1257 if (!sc->sched.offchannel_pending) in ath_chanctx_set_next()
1258 sc->sched.offchannel_duration = 0; in ath_chanctx_set_next()
1260 if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE) in ath_chanctx_set_next()
1261 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_set_next()
1273 sc->sched.channel_switch_time = in ath_chanctx_set_next()
1332 setup_timer(&sc->sched.timer, ath_chanctx_timer, in ath9k_init_channel_context()
1520 del_timer_sync(&sc->sched.timer); in ath9k_p2p_ps_timer()