Lines Matching full:avp
160 struct ath_vif *avp; in ath_is_go_chanctx_present() local
169 list_for_each_entry(avp, &ctx->vifs, list) { in ath_is_go_chanctx_present()
170 vif = avp->vif; in ath_is_go_chanctx_present()
246 struct ath_vif *avp; in ath_chanctx_check_active() local
275 list_for_each_entry(avp, &ctx->vifs, list) { in ath_chanctx_check_active()
276 struct ieee80211_vif *vif = avp->vif; in ath_chanctx_check_active()
281 if (avp->assoc) in ath_chanctx_check_active()
386 struct ath_vif *avp) in ath_chanctx_handle_bmiss() argument
395 avp->noa_duration = 0; in ath_chanctx_handle_bmiss()
404 avp->noa_duration = 0; in ath_chanctx_handle_bmiss()
411 struct ath_vif *avp, in ath_chanctx_offchannel_noa() argument
416 avp->noa_index++; in ath_chanctx_offchannel_noa()
417 avp->offchannel_start = tsf_time; in ath_chanctx_offchannel_noa()
418 avp->offchannel_duration = sc->sched.offchannel_duration; in ath_chanctx_offchannel_noa()
422 avp->offchannel_duration, in ath_chanctx_offchannel_noa()
423 avp->offchannel_start, in ath_chanctx_offchannel_noa()
424 avp->noa_index); in ath_chanctx_offchannel_noa()
431 if (ctx->active && avp->noa_duration) in ath_chanctx_offchannel_noa()
432 avp->noa_duration = 0; in ath_chanctx_offchannel_noa()
436 struct ath_vif *avp, in ath_chanctx_set_periodic_noa() argument
443 avp->noa_index++; in ath_chanctx_set_periodic_noa()
444 avp->noa_start = tsf_time; in ath_chanctx_set_periodic_noa()
447 avp->noa_duration = (3 * beacon_int / 2) + in ath_chanctx_set_periodic_noa()
450 avp->noa_duration = in ath_chanctx_set_periodic_noa()
456 avp->periodic_noa = false; in ath_chanctx_set_periodic_noa()
458 avp->periodic_noa = true; in ath_chanctx_set_periodic_noa()
462 avp->noa_duration, in ath_chanctx_set_periodic_noa()
463 avp->noa_start, in ath_chanctx_set_periodic_noa()
464 avp->noa_index, in ath_chanctx_set_periodic_noa()
465 avp->periodic_noa); in ath_chanctx_set_periodic_noa()
469 struct ath_vif *avp, in ath_chanctx_set_oneshot_noa() argument
475 avp->noa_index++; in ath_chanctx_set_oneshot_noa()
476 avp->noa_start = tsf_time; in ath_chanctx_set_oneshot_noa()
477 avp->periodic_noa = false; in ath_chanctx_set_oneshot_noa()
478 avp->oneshot_noa = true; in ath_chanctx_set_oneshot_noa()
479 avp->noa_duration = duration + sc->sched.channel_switch_time; in ath_chanctx_set_oneshot_noa()
483 avp->noa_duration, in ath_chanctx_set_oneshot_noa()
484 avp->noa_start, in ath_chanctx_set_oneshot_noa()
485 avp->noa_index, in ath_chanctx_set_oneshot_noa()
486 avp->periodic_noa); in ath_chanctx_set_oneshot_noa()
495 struct ath_vif *avp = NULL; in ath_chanctx_event() local
501 avp = (struct ath_vif *) vif->drv_priv; in ath_chanctx_event()
513 if (avp->offchannel_duration) in ath_chanctx_event()
514 avp->offchannel_duration = 0; in ath_chanctx_event()
516 if (avp->oneshot_noa) { in ath_chanctx_event()
517 avp->noa_duration = 0; in ath_chanctx_event()
518 avp->oneshot_noa = false; in ath_chanctx_event()
524 if (avp->chanctx != sc->cur_chan) { in ath_chanctx_event()
562 if (!ctx->active && avp->noa_duration && in ath_chanctx_event()
564 avp->noa_duration = 0; in ath_chanctx_event()
565 avp->periodic_noa = false; in ath_chanctx_event()
593 ath_chanctx_offchannel_noa(sc, ctx, avp, tsf_time); in ath_chanctx_event()
597 ath_chanctx_handle_bmiss(sc, ctx, avp); in ath_chanctx_event()
606 ath_chanctx_set_oneshot_noa(sc, avp, tsf_time, in ath_chanctx_event()
612 if (avp->noa_duration && tsf_time - avp->noa_start > BIT(30)) in ath_chanctx_event()
613 avp->noa_duration = 0; in ath_chanctx_event()
621 (!avp->noa_duration || sc->sched.force_noa_update)) in ath_chanctx_event()
622 ath_chanctx_set_periodic_noa(sc, avp, cur_conf, in ath_chanctx_event()
697 avp->chanctx != sc->cur_chan) in ath_chanctx_event()
1096 ath_chanctx_send_vif_ps_frame(struct ath_softc *sc, struct ath_vif *avp, in ath_chanctx_send_vif_ps_frame() argument
1099 struct ieee80211_vif *vif = avp->vif; in ath_chanctx_send_vif_ps_frame()
1108 if (!avp->assoc) in ath_chanctx_send_vif_ps_frame()
1145 struct ath_vif *avp; in ath_chanctx_send_ps_frame() local
1149 list_for_each_entry(avp, &sc->cur_chan->vifs, list) { in ath_chanctx_send_ps_frame()
1150 if (ath_chanctx_send_vif_ps_frame(sc, avp, powersave)) in ath_chanctx_send_ps_frame()
1421 static void ath9k_update_p2p_ps_timer(struct ath_softc *sc, struct ath_vif *avp) in ath9k_update_p2p_ps_timer() argument
1427 if (!avp || !avp->noa.has_next_tsf) in ath9k_update_p2p_ps_timer()
1434 target_tsf = avp->noa.next_tsf; in ath9k_update_p2p_ps_timer()
1435 if (!avp->noa.absent) in ath9k_update_p2p_ps_timer()
1444 __func__, avp->noa.absent, tsf, target_tsf, in ath9k_update_p2p_ps_timer()
1452 struct ath_vif *avp = (void *)vif->drv_priv; in ath9k_update_p2p_ps() local
1461 sc->p2p_ps_vif = avp; in ath9k_update_p2p_ps()
1467 ieee80211_parse_p2p_noa(&vif->bss_conf.p2p_noa_attr, &avp->noa, tsf); in ath9k_update_p2p_ps()
1468 ath9k_update_p2p_ps_timer(sc, avp); in ath9k_update_p2p_ps()
1471 static u8 ath9k_get_ctwin(struct ath_softc *sc, struct ath_vif *avp) in ath9k_get_ctwin() argument
1485 ctwin = avp->vif->bss_conf.p2p_noa_attr.oppps_ctwindow; in ath9k_get_ctwin()
1495 void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp, in ath9k_beacon_add_noa() argument
1512 if (!avp->offchannel_duration && !avp->noa_duration) in ath9k_beacon_add_noa()
1515 noa_desc = !!avp->offchannel_duration + !!avp->noa_duration; in ath9k_beacon_add_noa()
1524 noa->index = avp->noa_index; in ath9k_beacon_add_noa()
1525 noa->oppps_ctwindow = ath9k_get_ctwin(sc, avp); in ath9k_beacon_add_noa()
1529 if (avp->noa_duration) { in ath9k_beacon_add_noa()
1530 if (avp->periodic_noa) { in ath9k_beacon_add_noa()
1538 noa->desc[i].start_time = cpu_to_le32(avp->noa_start); in ath9k_beacon_add_noa()
1539 noa->desc[i].duration = cpu_to_le32(avp->noa_duration); in ath9k_beacon_add_noa()
1543 if (avp->offchannel_duration) { in ath9k_beacon_add_noa()
1545 noa->desc[i].start_time = cpu_to_le32(avp->offchannel_start); in ath9k_beacon_add_noa()
1546 noa->desc[i].duration = cpu_to_le32(avp->offchannel_duration); in ath9k_beacon_add_noa()
1553 struct ath_vif *avp = sc->p2p_ps_vif; in ath9k_p2p_ps_timer() local
1563 if (!avp || avp->chanctx != sc->cur_chan) in ath9k_p2p_ps_timer()
1567 if (!avp->noa.absent) in ath9k_p2p_ps_timer()
1572 if (!avp->noa.has_next_tsf || in ath9k_p2p_ps_timer()
1573 avp->noa.next_tsf - tsf > BIT(31)) in ath9k_p2p_ps_timer()
1574 ieee80211_update_p2p_noa(&avp->noa, tsf); in ath9k_p2p_ps_timer()
1576 ath9k_update_p2p_ps_timer(sc, avp); in ath9k_p2p_ps_timer()
1580 vif = avp->vif; in ath9k_p2p_ps_timer()
1581 sta = ieee80211_find_sta(vif, avp->bssid); in ath9k_p2p_ps_timer()
1586 if (an->sleeping == !!avp->noa.absent) in ath9k_p2p_ps_timer()
1589 an->sleeping = avp->noa.absent; in ath9k_p2p_ps_timer()
1620 struct ath_vif *avp = (void *)vif->drv_priv; in ath9k_p2p_remove_vif() local
1623 if (avp == sc->p2p_ps_vif) { in ath9k_p2p_remove_vif()