Lines Matching refs:twt
2522 static int mt7996_mac_check_twt_req(struct ieee80211_twt_setup *twt) in mt7996_mac_check_twt_req() argument
2530 if (twt->control & IEEE80211_TWT_CONTROL_NEG_TYPE_BROADCAST) in mt7996_mac_check_twt_req()
2534 if (twt->control & IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT) in mt7996_mac_check_twt_req()
2537 twt_agrt = (struct ieee80211_twt_params *)twt->params; in mt7996_mac_check_twt_req()
2567 if (!(msta->twt.flowid_mask & BIT(i))) in mt7996_mac_twt_param_equal()
2570 f = &msta->twt.flow[i]; in mt7996_mac_twt_param_equal()
2585 struct ieee80211_twt_setup *twt) in mt7996_mac_add_twt_setup() argument
2589 struct ieee80211_twt_params *twt_agrt = (void *)twt->params; in mt7996_mac_add_twt_setup()
2596 if (mt7996_mac_check_twt_req(twt)) in mt7996_mac_add_twt_setup()
2601 if (dev->twt.n_agrt == MT7996_MAX_TWT_AGRT) in mt7996_mac_add_twt_setup()
2604 if (hweight8(msta->twt.flowid_mask) == ARRAY_SIZE(msta->twt.flow)) in mt7996_mac_add_twt_setup()
2616 flowid = ffs(~msta->twt.flowid_mask) - 1; in mt7996_mac_add_twt_setup()
2621 table_id = ffs(~dev->twt.table_mask) - 1; in mt7996_mac_add_twt_setup()
2625 flow = &msta->twt.flow[flowid]; in mt7996_mac_add_twt_setup()
2649 twt_agrt->twt = cpu_to_le64(flow_tsf); in mt7996_mac_add_twt_setup()
2653 flow->tsf = le64_to_cpu(twt_agrt->twt); in mt7996_mac_add_twt_setup()
2659 dev->twt.table_mask |= BIT(table_id); in mt7996_mac_add_twt_setup()
2660 msta->twt.flowid_mask |= BIT(flowid); in mt7996_mac_add_twt_setup()
2661 dev->twt.n_agrt++; in mt7996_mac_add_twt_setup()
2669 twt->control = twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED; in mt7996_mac_add_twt_setup()
2680 if (flowid >= ARRAY_SIZE(msta->twt.flow)) in mt7996_mac_twt_teardown_flow()
2683 if (!(msta->twt.flowid_mask & BIT(flowid))) in mt7996_mac_twt_teardown_flow()
2686 flow = &msta->twt.flow[flowid]; in mt7996_mac_twt_teardown_flow()
2692 msta->twt.flowid_mask &= ~BIT(flowid); in mt7996_mac_twt_teardown_flow()
2693 dev->twt.table_mask &= ~BIT(flow->table_id); in mt7996_mac_twt_teardown_flow()
2694 dev->twt.n_agrt--; in mt7996_mac_twt_teardown_flow()