Lines Matching refs:ftm
22 if (!(rdev->wiphy.pmsr_capa->ftm.bandwidths & BIT(out->chandef.width))) { in pmsr_parse_ftm()
35 out->ftm.requested = true; in pmsr_parse_ftm()
49 if (!(capa->ftm.preambles & BIT(preamble))) { in pmsr_parse_ftm()
56 out->ftm.preamble = preamble; in pmsr_parse_ftm()
58 out->ftm.burst_period = 0; in pmsr_parse_ftm()
60 out->ftm.burst_period = in pmsr_parse_ftm()
63 out->ftm.asap = !!tb[NL80211_PMSR_FTM_REQ_ATTR_ASAP]; in pmsr_parse_ftm()
64 if (out->ftm.asap && !capa->ftm.asap) { in pmsr_parse_ftm()
71 if (!out->ftm.asap && !capa->ftm.non_asap) { in pmsr_parse_ftm()
77 out->ftm.num_bursts_exp = 0; in pmsr_parse_ftm()
79 out->ftm.num_bursts_exp = in pmsr_parse_ftm()
82 if (capa->ftm.max_bursts_exponent >= 0 && in pmsr_parse_ftm()
83 out->ftm.num_bursts_exp > capa->ftm.max_bursts_exponent) { in pmsr_parse_ftm()
90 out->ftm.burst_duration = 15; in pmsr_parse_ftm()
92 out->ftm.burst_duration = in pmsr_parse_ftm()
95 out->ftm.ftms_per_burst = 0; in pmsr_parse_ftm()
97 out->ftm.ftms_per_burst = in pmsr_parse_ftm()
100 if (capa->ftm.max_ftms_per_burst && in pmsr_parse_ftm()
101 (out->ftm.ftms_per_burst > capa->ftm.max_ftms_per_burst || in pmsr_parse_ftm()
102 out->ftm.ftms_per_burst == 0)) { in pmsr_parse_ftm()
109 out->ftm.ftmr_retries = 3; in pmsr_parse_ftm()
111 out->ftm.ftmr_retries = in pmsr_parse_ftm()
114 out->ftm.request_lci = !!tb[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI]; in pmsr_parse_ftm()
115 if (out->ftm.request_lci && !capa->ftm.request_lci) { in pmsr_parse_ftm()
121 out->ftm.request_civicloc = in pmsr_parse_ftm()
123 if (out->ftm.request_civicloc && !capa->ftm.request_civicloc) { in pmsr_parse_ftm()
129 out->ftm.trigger_based = in pmsr_parse_ftm()
131 if (out->ftm.trigger_based && !capa->ftm.trigger_based) { in pmsr_parse_ftm()
138 out->ftm.non_trigger_based = in pmsr_parse_ftm()
140 if (out->ftm.non_trigger_based && !capa->ftm.non_trigger_based) { in pmsr_parse_ftm()
147 if (out->ftm.trigger_based && out->ftm.non_trigger_based) { in pmsr_parse_ftm()
153 if ((out->ftm.trigger_based || out->ftm.non_trigger_based) && in pmsr_parse_ftm()
154 out->ftm.preamble != NL80211_PREAMBLE_HE) { in pmsr_parse_ftm()
380 res->ftm.failure_reason)) in nl80211_pmsr_send_ftm_res()
383 if (res->ftm.failure_reason == in nl80211_pmsr_send_ftm_res()
385 res->ftm.busy_retry_time && in nl80211_pmsr_send_ftm_res()
387 res->ftm.busy_retry_time)) in nl80211_pmsr_send_ftm_res()
397 res->ftm.val)) \ in nl80211_pmsr_send_ftm_res()
403 if (res->ftm.val##_valid) \ in nl80211_pmsr_send_ftm_res()
411 res->ftm.val, \ in nl80211_pmsr_send_ftm_res()
418 if (res->ftm.val##_valid) \ in nl80211_pmsr_send_ftm_res()
422 if (res->ftm.burst_index >= 0) in nl80211_pmsr_send_ftm_res()
431 if (res->ftm.tx_rate_valid && in nl80211_pmsr_send_ftm_res()
432 !nl80211_put_sta_rate(msg, &res->ftm.tx_rate, in nl80211_pmsr_send_ftm_res()
435 if (res->ftm.rx_rate_valid && in nl80211_pmsr_send_ftm_res()
436 !nl80211_put_sta_rate(msg, &res->ftm.rx_rate, in nl80211_pmsr_send_ftm_res()
445 if (res->ftm.lci && res->ftm.lci_len && in nl80211_pmsr_send_ftm_res()
447 res->ftm.lci_len, res->ftm.lci)) in nl80211_pmsr_send_ftm_res()
449 if (res->ftm.civicloc && res->ftm.civicloc_len && in nl80211_pmsr_send_ftm_res()
451 res->ftm.civicloc_len, res->ftm.civicloc)) in nl80211_pmsr_send_ftm_res()