Lines Matching refs:avp
160 struct ath_vif *avp;
169 list_for_each_entry(avp, &ctx->vifs, list) {
170 vif = avp->vif;
251 struct ath_vif *avp;
280 list_for_each_entry(avp, &ctx->vifs, list) {
281 struct ieee80211_vif *vif = avp->vif;
286 if (avp->assoc)
391 struct ath_vif *avp)
400 avp->noa_duration = 0;
409 avp->noa_duration = 0;
416 struct ath_vif *avp,
421 avp->noa_index++;
422 avp->offchannel_start = tsf_time;
423 avp->offchannel_duration = sc->sched.offchannel_duration;
427 avp->offchannel_duration,
428 avp->offchannel_start,
429 avp->noa_index);
436 if (ctx->active && avp->noa_duration)
437 avp->noa_duration = 0;
441 struct ath_vif *avp,
448 avp->noa_index++;
449 avp->noa_start = tsf_time;
452 avp->noa_duration = (3 * beacon_int / 2) +
455 avp->noa_duration =
461 avp->periodic_noa = false;
463 avp->periodic_noa = true;
467 avp->noa_duration,
468 avp->noa_start,
469 avp->noa_index,
470 avp->periodic_noa);
474 struct ath_vif *avp,
480 avp->noa_index++;
481 avp->noa_start = tsf_time;
482 avp->periodic_noa = false;
483 avp->oneshot_noa = true;
484 avp->noa_duration = duration + sc->sched.channel_switch_time;
488 avp->noa_duration,
489 avp->noa_start,
490 avp->noa_index,
491 avp->periodic_noa);
500 struct ath_vif *avp = NULL;
506 avp = (struct ath_vif *) vif->drv_priv;
518 if (avp->offchannel_duration)
519 avp->offchannel_duration = 0;
521 if (avp->oneshot_noa) {
522 avp->noa_duration = 0;
523 avp->oneshot_noa = false;
529 if (avp->chanctx != sc->cur_chan) {
567 if (!ctx->active && avp->noa_duration &&
569 avp->noa_duration = 0;
570 avp->periodic_noa = false;
598 ath_chanctx_offchannel_noa(sc, ctx, avp, tsf_time);
602 ath_chanctx_handle_bmiss(sc, ctx, avp);
611 ath_chanctx_set_oneshot_noa(sc, avp, tsf_time,
617 if (avp->noa_duration && tsf_time - avp->noa_start > BIT(30))
618 avp->noa_duration = 0;
626 (!avp->noa_duration || sc->sched.force_noa_update))
627 ath_chanctx_set_periodic_noa(sc, avp, cur_conf,
702 avp->chanctx != sc->cur_chan)
1101 ath_chanctx_send_vif_ps_frame(struct ath_softc *sc, struct ath_vif *avp,
1104 struct ieee80211_vif *vif = avp->vif;
1113 if (!avp->assoc)
1150 struct ath_vif *avp;
1154 list_for_each_entry(avp, &sc->cur_chan->vifs, list) {
1155 if (ath_chanctx_send_vif_ps_frame(sc, avp, powersave))
1426 static void ath9k_update_p2p_ps_timer(struct ath_softc *sc, struct ath_vif *avp)
1432 if (!avp || !avp->noa.has_next_tsf)
1439 target_tsf = avp->noa.next_tsf;
1440 if (!avp->noa.absent)
1449 __func__, avp->noa.absent, tsf, target_tsf,
1457 struct ath_vif *avp = (void *)vif->drv_priv;
1466 sc->p2p_ps_vif = avp;
1472 ieee80211_parse_p2p_noa(&vif->bss_conf.p2p_noa_attr, &avp->noa, tsf);
1473 ath9k_update_p2p_ps_timer(sc, avp);
1476 static u8 ath9k_get_ctwin(struct ath_softc *sc, struct ath_vif *avp)
1490 ctwin = avp->vif->bss_conf.p2p_noa_attr.oppps_ctwindow;
1500 void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp,
1517 if (!avp->offchannel_duration && !avp->noa_duration)
1520 noa_desc = !!avp->offchannel_duration + !!avp->noa_duration;
1529 noa->index = avp->noa_index;
1530 noa->oppps_ctwindow = ath9k_get_ctwin(sc, avp);
1534 if (avp->noa_duration) {
1535 if (avp->periodic_noa) {
1543 noa->desc[i].start_time = cpu_to_le32(avp->noa_start);
1544 noa->desc[i].duration = cpu_to_le32(avp->noa_duration);
1548 if (avp->offchannel_duration) {
1550 noa->desc[i].start_time = cpu_to_le32(avp->offchannel_start);
1551 noa->desc[i].duration = cpu_to_le32(avp->offchannel_duration);
1558 struct ath_vif *avp = sc->p2p_ps_vif;
1568 if (!avp || avp->chanctx != sc->cur_chan)
1572 if (!avp->noa.absent)
1577 if (!avp->noa.has_next_tsf ||
1578 avp->noa.next_tsf - tsf > BIT(31))
1579 ieee80211_update_p2p_noa(&avp->noa, tsf);
1581 ath9k_update_p2p_ps_timer(sc, avp);
1585 vif = avp->vif;
1586 sta = ieee80211_find_sta(vif, avp->bssid);
1591 if (an->sleeping == !!avp->noa.absent)
1594 an->sleeping = avp->noa.absent;
1625 struct ath_vif *avp = (void *)vif->drv_priv;
1628 if (avp == sc->p2p_ps_vif) {