Lines Matching refs:sched
261 if (likely(sc->sched.channel_switch_time)) in ath_chanctx_check_active()
263 usecs_to_jiffies(sc->sched.channel_switch_time); in ath_chanctx_check_active()
311 ictx->flush_timeout = usecs_to_jiffies(sc->sched.channel_switch_time); in ath_chanctx_check_active()
382 mod_timer(&sc->sched.timer, jiffies + timeout); in ath_chanctx_setup_timer()
399 if (ctx->active && sc->sched.extend_absence) { in ath_chanctx_handle_bmiss()
401 sc->sched.extend_absence = false; in ath_chanctx_handle_bmiss()
408 if (ctx->active && sc->sched.beacon_miss >= 2) { in ath_chanctx_handle_bmiss()
410 sc->sched.extend_absence = true; in ath_chanctx_handle_bmiss()
423 avp->offchannel_duration = sc->sched.offchannel_duration; in ath_chanctx_offchannel_noa()
451 if (sc->sched.extend_absence) in ath_chanctx_set_periodic_noa()
453 sc->sched.channel_switch_time; in ath_chanctx_set_periodic_noa()
457 sc->sched.channel_switch_time; in ath_chanctx_set_periodic_noa()
460 sc->sched.extend_absence) in ath_chanctx_set_periodic_noa()
484 avp->noa_duration = duration + sc->sched.channel_switch_time; in ath_chanctx_set_oneshot_noa()
513 chanctx_state_string(sc->sched.state), in ath_chanctx_event()
535 if (sc->sched.offchannel_pending && !sc->sched.wait_switch) { in ath_chanctx_event()
536 sc->sched.offchannel_pending = false; in ath_chanctx_event()
538 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
544 if (ctx->active && sc->sched.state == ATH_CHANCTX_STATE_IDLE) { in ath_chanctx_event()
546 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
552 if (sc->sched.state == ATH_CHANCTX_STATE_WAIT_FOR_TIMER) { in ath_chanctx_event()
553 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
558 if (sc->sched.mgd_prepare_tx) in ath_chanctx_event()
559 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_event()
568 sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) { in ath_chanctx_event()
576 if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) in ath_chanctx_event()
581 sc->sched.beacon_pending = true; in ath_chanctx_event()
582 sc->sched.next_tbtt = REG_READ(ah, AR_NEXT_TBTT_TIMER); in ath_chanctx_event()
588 tsf_time = sc->sched.next_tbtt + beacon_int / 4; in ath_chanctx_event()
589 sc->sched.switch_start_time = tsf_time; in ath_chanctx_event()
590 sc->cur_chan->last_beacon = sc->sched.next_tbtt; in ath_chanctx_event()
610 if (sc->sched.mgd_prepare_tx) { in ath_chanctx_event()
626 (!avp->noa_duration || sc->sched.force_noa_update)) in ath_chanctx_event()
630 if (ctx->active && sc->sched.force_noa_update) in ath_chanctx_event()
631 sc->sched.force_noa_update = false; in ath_chanctx_event()
635 if (!sc->sched.beacon_pending) { in ath_chanctx_event()
641 sc->sched.beacon_pending = false; in ath_chanctx_event()
643 if (sc->sched.mgd_prepare_tx) { in ath_chanctx_event()
644 sc->sched.mgd_prepare_tx = false; in ath_chanctx_event()
651 if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON) in ath_chanctx_event()
657 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_TIMER; in ath_chanctx_event()
658 ath_chanctx_setup_timer(sc, sc->sched.switch_start_time); in ath_chanctx_event()
661 if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_TIMER) in ath_chanctx_event()
665 sc->sched.beacon_pending) in ath_chanctx_event()
666 sc->sched.beacon_miss++; in ath_chanctx_event()
671 sc->sched.state = ATH_CHANCTX_STATE_SWITCH; in ath_chanctx_event()
679 sc->sched.beacon_pending = false; in ath_chanctx_event()
680 sc->sched.beacon_miss = 0; in ath_chanctx_event()
682 if (sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE || in ath_chanctx_event()
683 !sc->sched.beacon_adjust || in ath_chanctx_event()
692 tsf_time = sc->sched.switch_start_time; in ath_chanctx_event()
697 sc->sched.beacon_adjust = false; in ath_chanctx_event()
701 if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE || in ath_chanctx_event()
708 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_event()
712 sc->sched.state == ATH_CHANCTX_STATE_FORCE_ACTIVE || in ath_chanctx_event()
726 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_TIMER; in ath_chanctx_event()
727 sc->sched.wait_switch = false; in ath_chanctx_event()
731 if (sc->sched.extend_absence) { in ath_chanctx_event()
732 sc->sched.beacon_miss = 0; in ath_chanctx_event()
736 tsf_time -= sc->sched.channel_switch_time; in ath_chanctx_event()
738 sc->sched.switch_start_time = tsf_time; in ath_chanctx_event()
741 sc->sched.beacon_pending = true; in ath_chanctx_event()
742 sc->sched.beacon_adjust = true; in ath_chanctx_event()
756 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_event()
761 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_event()
780 if (sc->sched.beacon_pending) in ath_chanctx_beacon_sent_ev()
813 sc->sched.offchannel_pending = true; in ath_chanctx_switch()
814 sc->sched.wait_switch = true; in ath_chanctx_switch()
815 sc->sched.offchannel_duration = in ath_chanctx_switch()
817 sc->sched.channel_switch_time; in ath_chanctx_switch()
833 sc->sched.offchannel_duration = in ath_chanctx_switch()
835 sc->sched.channel_switch_time; in ath_chanctx_switch()
841 sc->sched.offchannel_duration); in ath_chanctx_switch()
927 sc->sched.offchannel_pending = false; in ath_offchannel_next()
928 sc->sched.wait_switch = false; in ath_offchannel_next()
983 sc->sched.force_noa_update = true; in ath_scan_complete()
1048 struct ath_softc *sc = from_timer(sc, t, sched.timer); in ath_chanctx_timer()
1170 switch (sc->sched.state) { in ath_chanctx_defer_switch()
1180 sc->sched.state = ATH_CHANCTX_STATE_WAIT_FOR_BEACON; in ath_chanctx_defer_switch()
1289 if (!sc->sched.offchannel_pending) in ath_chanctx_set_next()
1290 sc->sched.offchannel_duration = 0; in ath_chanctx_set_next()
1292 if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE) in ath_chanctx_set_next()
1293 sc->sched.state = ATH_CHANCTX_STATE_IDLE; in ath_chanctx_set_next()
1305 sc->sched.channel_switch_time = in ath_chanctx_set_next()
1366 timer_setup(&sc->sched.timer, ath_chanctx_timer, 0); in ath9k_init_channel_context()
1564 del_timer_sync(&sc->sched.timer); in ath9k_p2p_ps_timer()