Lines Matching refs:ftm

20 	if (!(rdev->wiphy.pmsr_capa->ftm.bandwidths & BIT(out->chandef.width))) {  in pmsr_parse_ftm()
33 out->ftm.requested = true; in pmsr_parse_ftm()
47 if (!(capa->ftm.preambles & BIT(preamble))) { in pmsr_parse_ftm()
54 out->ftm.preamble = preamble; in pmsr_parse_ftm()
56 out->ftm.burst_period = 0; in pmsr_parse_ftm()
58 out->ftm.burst_period = in pmsr_parse_ftm()
61 out->ftm.asap = !!tb[NL80211_PMSR_FTM_REQ_ATTR_ASAP]; in pmsr_parse_ftm()
62 if (out->ftm.asap && !capa->ftm.asap) { in pmsr_parse_ftm()
69 if (!out->ftm.asap && !capa->ftm.non_asap) { in pmsr_parse_ftm()
75 out->ftm.num_bursts_exp = 0; in pmsr_parse_ftm()
77 out->ftm.num_bursts_exp = in pmsr_parse_ftm()
80 if (capa->ftm.max_bursts_exponent >= 0 && in pmsr_parse_ftm()
81 out->ftm.num_bursts_exp > capa->ftm.max_bursts_exponent) { in pmsr_parse_ftm()
88 out->ftm.burst_duration = 15; in pmsr_parse_ftm()
90 out->ftm.burst_duration = in pmsr_parse_ftm()
93 out->ftm.ftms_per_burst = 0; in pmsr_parse_ftm()
95 out->ftm.ftms_per_burst = in pmsr_parse_ftm()
98 if (capa->ftm.max_ftms_per_burst && in pmsr_parse_ftm()
99 (out->ftm.ftms_per_burst > capa->ftm.max_ftms_per_burst || in pmsr_parse_ftm()
100 out->ftm.ftms_per_burst == 0)) { in pmsr_parse_ftm()
107 out->ftm.ftmr_retries = 3; in pmsr_parse_ftm()
109 out->ftm.ftmr_retries = in pmsr_parse_ftm()
112 out->ftm.request_lci = !!tb[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI]; in pmsr_parse_ftm()
113 if (out->ftm.request_lci && !capa->ftm.request_lci) { in pmsr_parse_ftm()
119 out->ftm.request_civicloc = in pmsr_parse_ftm()
121 if (out->ftm.request_civicloc && !capa->ftm.request_civicloc) { in pmsr_parse_ftm()
127 out->ftm.trigger_based = in pmsr_parse_ftm()
129 if (out->ftm.trigger_based && !capa->ftm.trigger_based) { in pmsr_parse_ftm()
136 out->ftm.non_trigger_based = in pmsr_parse_ftm()
138 if (out->ftm.non_trigger_based && !capa->ftm.non_trigger_based) { in pmsr_parse_ftm()
145 if (out->ftm.trigger_based && out->ftm.non_trigger_based) { in pmsr_parse_ftm()
151 if ((out->ftm.trigger_based || out->ftm.non_trigger_based) && in pmsr_parse_ftm()
152 out->ftm.preamble != NL80211_PREAMBLE_HE) { in pmsr_parse_ftm()
159 out->ftm.lmr_feedback = in pmsr_parse_ftm()
161 if (!out->ftm.trigger_based && !out->ftm.non_trigger_based && in pmsr_parse_ftm()
162 out->ftm.lmr_feedback) { in pmsr_parse_ftm()
170 if (!out->ftm.non_trigger_based && !out->ftm.trigger_based) { in pmsr_parse_ftm()
177 out->ftm.bss_color = in pmsr_parse_ftm()
400 res->ftm.failure_reason)) in nl80211_pmsr_send_ftm_res()
403 if (res->ftm.failure_reason == in nl80211_pmsr_send_ftm_res()
405 res->ftm.busy_retry_time && in nl80211_pmsr_send_ftm_res()
407 res->ftm.busy_retry_time)) in nl80211_pmsr_send_ftm_res()
417 res->ftm.val)) \ in nl80211_pmsr_send_ftm_res()
423 if (res->ftm.val##_valid) \ in nl80211_pmsr_send_ftm_res()
431 res->ftm.val, \ in nl80211_pmsr_send_ftm_res()
438 if (res->ftm.val##_valid) \ in nl80211_pmsr_send_ftm_res()
442 if (res->ftm.burst_index >= 0) in nl80211_pmsr_send_ftm_res()
451 if (res->ftm.tx_rate_valid && in nl80211_pmsr_send_ftm_res()
452 !nl80211_put_sta_rate(msg, &res->ftm.tx_rate, in nl80211_pmsr_send_ftm_res()
455 if (res->ftm.rx_rate_valid && in nl80211_pmsr_send_ftm_res()
456 !nl80211_put_sta_rate(msg, &res->ftm.rx_rate, in nl80211_pmsr_send_ftm_res()
465 if (res->ftm.lci && res->ftm.lci_len && in nl80211_pmsr_send_ftm_res()
467 res->ftm.lci_len, res->ftm.lci)) in nl80211_pmsr_send_ftm_res()
469 if (res->ftm.civicloc && res->ftm.civicloc_len && in nl80211_pmsr_send_ftm_res()
471 res->ftm.civicloc_len, res->ftm.civicloc)) in nl80211_pmsr_send_ftm_res()