ftm 18 drivers/counter/ftm-quaddec.c #define FTM_FIELD_UPDATE(ftm, offset, mask, val) \ ftm 21 drivers/counter/ftm-quaddec.c ftm_read(ftm, offset, &flags); \ ftm 24 drivers/counter/ftm-quaddec.c ftm_write(ftm, offset, flags); \ ftm 35 drivers/counter/ftm-quaddec.c static void ftm_read(struct ftm_quaddec *ftm, uint32_t offset, uint32_t *data) ftm 37 drivers/counter/ftm-quaddec.c if (ftm->big_endian) ftm 38 drivers/counter/ftm-quaddec.c *data = ioread32be(ftm->ftm_base + offset); ftm 40 drivers/counter/ftm-quaddec.c *data = ioread32(ftm->ftm_base + offset); ftm 43 drivers/counter/ftm-quaddec.c static void ftm_write(struct ftm_quaddec *ftm, uint32_t offset, uint32_t data) ftm 45 drivers/counter/ftm-quaddec.c if (ftm->big_endian) ftm 46 drivers/counter/ftm-quaddec.c iowrite32be(data, ftm->ftm_base + offset); ftm 48 drivers/counter/ftm-quaddec.c iowrite32(data, ftm->ftm_base + offset); ftm 52 drivers/counter/ftm-quaddec.c static void ftm_clear_write_protection(struct ftm_quaddec *ftm) ftm 57 drivers/counter/ftm-quaddec.c ftm_read(ftm, FTM_FMS, &flag); ftm 60 drivers/counter/ftm-quaddec.c FTM_FIELD_UPDATE(ftm, FTM_MODE, FTM_MODE_WPDIS, 1); ftm 63 drivers/counter/ftm-quaddec.c static void ftm_set_write_protection(struct ftm_quaddec *ftm) ftm 65 drivers/counter/ftm-quaddec.c FTM_FIELD_UPDATE(ftm, FTM_FMS, FTM_FMS_WPEN, 1); ftm 68 drivers/counter/ftm-quaddec.c static void ftm_reset_counter(struct ftm_quaddec *ftm) ftm 71 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_CNT, 0x0); ftm 74 drivers/counter/ftm-quaddec.c static void ftm_quaddec_init(struct ftm_quaddec *ftm) ftm 76 drivers/counter/ftm-quaddec.c ftm_clear_write_protection(ftm); ftm 83 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_MODE, FTM_MODE_FTMEN); ftm 84 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_CNTIN, 0x0000); ftm 85 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_MOD, 0xffff); ftm 86 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_CNT, 0x0); ftm 88 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_SC, FTM_SC_PS_1); ftm 91 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_QDCTRL, FTM_QDCTRL_QUADEN); ftm 94 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_POL, 0x0); ftm 95 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_FLTCTRL, 0x0); ftm 96 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_SYNCONF, 0x0); ftm 97 drivers/counter/ftm-quaddec.c ftm_write(ftm, FTM_SYNC, 0xffff); ftm 100 drivers/counter/ftm-quaddec.c ftm_set_write_protection(ftm); ftm 103 drivers/counter/ftm-quaddec.c static void ftm_quaddec_disable(void *ftm) ftm 105 drivers/counter/ftm-quaddec.c struct ftm_quaddec *ftm_qua = ftm; ftm 121 drivers/counter/ftm-quaddec.c struct ftm_quaddec *ftm = counter->priv; ftm 124 drivers/counter/ftm-quaddec.c ftm_read(ftm, FTM_SC, &scflags); ftm 135 drivers/counter/ftm-quaddec.c struct ftm_quaddec *ftm = counter->priv; ftm 137 drivers/counter/ftm-quaddec.c mutex_lock(&ftm->ftm_quaddec_mutex); ftm 139 drivers/counter/ftm-quaddec.c ftm_clear_write_protection(ftm); ftm 140 drivers/counter/ftm-quaddec.c FTM_FIELD_UPDATE(ftm, FTM_SC, FTM_SC_PS_MASK, cnt_mode); ftm 141 drivers/counter/ftm-quaddec.c ftm_set_write_protection(ftm); ftm 144 drivers/counter/ftm-quaddec.c ftm_reset_counter(ftm); ftm 146 drivers/counter/ftm-quaddec.c mutex_unlock(&ftm->ftm_quaddec_mutex); ftm 183 drivers/counter/ftm-quaddec.c struct ftm_quaddec *const ftm = counter->priv; ftm 186 drivers/counter/ftm-quaddec.c ftm_read(ftm, FTM_CNT, &cntval); ftm 197 drivers/counter/ftm-quaddec.c struct ftm_quaddec *const ftm = counter->priv; ftm 206 drivers/counter/ftm-quaddec.c dev_warn(&ftm->pdev->dev, "Can only accept '0' as new counter value\n"); ftm 210 drivers/counter/ftm-quaddec.c ftm_reset_counter(ftm); ftm 283 drivers/counter/ftm-quaddec.c struct ftm_quaddec *ftm; ftm 289 drivers/counter/ftm-quaddec.c ftm = devm_kzalloc(&pdev->dev, sizeof(*ftm), GFP_KERNEL); ftm 290 drivers/counter/ftm-quaddec.c if (!ftm) ftm 293 drivers/counter/ftm-quaddec.c platform_set_drvdata(pdev, ftm); ftm 301 drivers/counter/ftm-quaddec.c ftm->pdev = pdev; ftm 302 drivers/counter/ftm-quaddec.c ftm->big_endian = of_property_read_bool(node, "big-endian"); ftm 303 drivers/counter/ftm-quaddec.c ftm->ftm_base = devm_ioremap(&pdev->dev, io->start, resource_size(io)); ftm 305 drivers/counter/ftm-quaddec.c if (!ftm->ftm_base) { ftm 309 drivers/counter/ftm-quaddec.c ftm->counter.name = dev_name(&pdev->dev); ftm 310 drivers/counter/ftm-quaddec.c ftm->counter.parent = &pdev->dev; ftm 311 drivers/counter/ftm-quaddec.c ftm->counter.ops = &ftm_quaddec_cnt_ops; ftm 312 drivers/counter/ftm-quaddec.c ftm->counter.counts = &ftm_quaddec_counts; ftm 313 drivers/counter/ftm-quaddec.c ftm->counter.num_counts = 1; ftm 314 drivers/counter/ftm-quaddec.c ftm->counter.signals = ftm_quaddec_signals; ftm 315 drivers/counter/ftm-quaddec.c ftm->counter.num_signals = ARRAY_SIZE(ftm_quaddec_signals); ftm 316 drivers/counter/ftm-quaddec.c ftm->counter.priv = ftm; ftm 318 drivers/counter/ftm-quaddec.c mutex_init(&ftm->ftm_quaddec_mutex); ftm 320 drivers/counter/ftm-quaddec.c ftm_quaddec_init(ftm); ftm 322 drivers/counter/ftm-quaddec.c ret = devm_add_action_or_reset(&pdev->dev, ftm_quaddec_disable, ftm); ftm 326 drivers/counter/ftm-quaddec.c ret = devm_counter_register(&pdev->dev, &ftm->counter); ftm 111 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.burst_index = mvm->ftm_initiator.responses[i]; ftm 262 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c cpu_to_le16(peer->ftm.burst_period); ftm 263 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->samples_per_burst = peer->ftm.ftms_per_burst; ftm 264 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->num_of_bursts = peer->ftm.num_bursts_exp; ftm 266 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->retries_per_sample = peer->ftm.ftmr_retries; ftm 267 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->asap_mode = peer->ftm.asap; ftm 270 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c if (peer->ftm.request_lci) ftm 272 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c if (peer->ftm.request_civicloc) ftm 297 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c cpu_to_le16(peer->ftm.burst_period); ftm 298 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->samples_per_burst = peer->ftm.ftms_per_burst; ftm 299 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->num_of_bursts = peer->ftm.num_bursts_exp; ftm 300 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c target->ftmr_max_retries = peer->ftm.ftmr_retries; ftm 303 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c if (peer->ftm.asap) ftm 306 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c if (peer->ftm.request_lci) ftm 309 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c if (peer->ftm.request_civicloc) ftm 443 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c res->ftm.lci_len = entry->lci_len; ftm 444 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c res->ftm.lci = entry->buf; ftm 448 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c res->ftm.civicloc_len = entry->civic_len; ftm 449 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c res->ftm.civicloc = entry->buf + entry->lci_len; ftm 479 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c s64 rtt_avg = div_s64(res->ftm.rtt_avg * 100, 6666); ftm 485 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\tburst index: %hhu\n", res->ftm.burst_index); ftm 486 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\tsuccess num: %u\n", res->ftm.num_ftmr_successes); ftm 487 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\trssi: %d\n", res->ftm.rssi_avg); ftm 488 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\trssi spread: %hhu\n", res->ftm.rssi_spread); ftm 489 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\trtt: %lld\n", res->ftm.rtt_avg); ftm 490 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\trtt var: %llu\n", res->ftm.rtt_variance); ftm 491 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c IWL_DEBUG_INFO(mvm, "\trtt spread: %llu\n", res->ftm.rtt_spread); ftm 576 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.failure_reason = ftm 581 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.failure_reason = ftm 583 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.busy_retry_time = fw_ap->refusal_period; ftm 587 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.failure_reason = ftm 595 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.burst_index = mvm->ftm_initiator.responses[peer_idx]; ftm 597 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rssi_avg = fw_ap->rssi; ftm 598 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rssi_avg_valid = 1; ftm 599 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rssi_spread = fw_ap->rssi_spread; ftm 600 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rssi_spread_valid = 1; ftm 601 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rtt_avg = (s32)le32_to_cpu(fw_ap->rtt); ftm 602 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rtt_avg_valid = 1; ftm 603 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rtt_variance = le32_to_cpu(fw_ap->rtt_variance); ftm 604 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rtt_variance_valid = 1; ftm 605 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rtt_spread = le32_to_cpu(fw_ap->rtt_spread); ftm 606 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c result.ftm.rtt_spread_valid = 1; ftm 639 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c sizeof(mgmt->u.action.u.ftm); ftm 648 drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c ies = mgmt->u.action.u.ftm.variable; ftm 190 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c .ftm = { ftm 1059 include/linux/ieee80211.h } __packed ftm; ftm 3180 include/net/cfg80211.h struct cfg80211_pmsr_ftm_result ftm; ftm 3223 include/net/cfg80211.h struct cfg80211_pmsr_ftm_request_peer ftm; ftm 4364 include/net/cfg80211.h } ftm; ftm 682 net/wireless/core.c if (WARN_ON(wiphy->pmsr_capa && !wiphy->pmsr_capa->ftm.supported)) ftm 685 net/wireless/core.c if (wiphy->pmsr_capa && wiphy->pmsr_capa->ftm.supported) { ftm 686 net/wireless/core.c if (WARN_ON(!wiphy->pmsr_capa->ftm.asap && ftm 687 net/wireless/core.c !wiphy->pmsr_capa->ftm.non_asap)) ftm 689 net/wireless/core.c if (WARN_ON(!wiphy->pmsr_capa->ftm.preambles || ftm 690 net/wireless/core.c !wiphy->pmsr_capa->ftm.bandwidths)) ftm 692 net/wireless/core.c if (WARN_ON(wiphy->pmsr_capa->ftm.preambles & ftm 698 net/wireless/core.c if (WARN_ON(wiphy->pmsr_capa->ftm.bandwidths & ftm 1810 net/wireless/nl80211.c struct nlattr *ftm; ftm 1812 net/wireless/nl80211.c if (!cap->ftm.supported) ftm 1815 net/wireless/nl80211.c ftm = nla_nest_start_noflag(msg, NL80211_PMSR_TYPE_FTM); ftm 1816 net/wireless/nl80211.c if (!ftm) ftm 1819 net/wireless/nl80211.c if (cap->ftm.asap && nla_put_flag(msg, NL80211_PMSR_FTM_CAPA_ATTR_ASAP)) ftm 1821 net/wireless/nl80211.c if (cap->ftm.non_asap && ftm 1824 net/wireless/nl80211.c if (cap->ftm.request_lci && ftm 1827 net/wireless/nl80211.c if (cap->ftm.request_civicloc && ftm 1831 net/wireless/nl80211.c cap->ftm.preambles)) ftm 1834 net/wireless/nl80211.c cap->ftm.bandwidths)) ftm 1836 net/wireless/nl80211.c if (cap->ftm.max_bursts_exponent >= 0 && ftm 1838 net/wireless/nl80211.c cap->ftm.max_bursts_exponent)) ftm 1840 net/wireless/nl80211.c if (cap->ftm.max_ftms_per_burst && ftm 1842 net/wireless/nl80211.c cap->ftm.max_ftms_per_burst)) ftm 1845 net/wireless/nl80211.c nla_nest_end(msg, ftm); ftm 22 net/wireless/pmsr.c if (!(rdev->wiphy.pmsr_capa->ftm.bandwidths & BIT(out->chandef.width))) { ftm 35 net/wireless/pmsr.c out->ftm.requested = true; ftm 49 net/wireless/pmsr.c if (!(capa->ftm.preambles & BIT(preamble))) { ftm 56 net/wireless/pmsr.c out->ftm.preamble = preamble; ftm 58 net/wireless/pmsr.c out->ftm.burst_period = 0; ftm 60 net/wireless/pmsr.c out->ftm.burst_period = ftm 63 net/wireless/pmsr.c out->ftm.asap = !!tb[NL80211_PMSR_FTM_REQ_ATTR_ASAP]; ftm 64 net/wireless/pmsr.c if (out->ftm.asap && !capa->ftm.asap) { ftm 71 net/wireless/pmsr.c if (!out->ftm.asap && !capa->ftm.non_asap) { ftm 77 net/wireless/pmsr.c out->ftm.num_bursts_exp = 0; ftm 79 net/wireless/pmsr.c out->ftm.num_bursts_exp = ftm 82 net/wireless/pmsr.c if (capa->ftm.max_bursts_exponent >= 0 && ftm 83 net/wireless/pmsr.c out->ftm.num_bursts_exp > capa->ftm.max_bursts_exponent) { ftm 90 net/wireless/pmsr.c out->ftm.burst_duration = 15; ftm 92 net/wireless/pmsr.c out->ftm.burst_duration = ftm 95 net/wireless/pmsr.c out->ftm.ftms_per_burst = 0; ftm 97 net/wireless/pmsr.c out->ftm.ftms_per_burst = ftm 100 net/wireless/pmsr.c if (capa->ftm.max_ftms_per_burst && ftm 101 net/wireless/pmsr.c (out->ftm.ftms_per_burst > capa->ftm.max_ftms_per_burst || ftm 102 net/wireless/pmsr.c out->ftm.ftms_per_burst == 0)) { ftm 109 net/wireless/pmsr.c out->ftm.ftmr_retries = 3; ftm 111 net/wireless/pmsr.c out->ftm.ftmr_retries = ftm 114 net/wireless/pmsr.c out->ftm.request_lci = !!tb[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI]; ftm 115 net/wireless/pmsr.c if (out->ftm.request_lci && !capa->ftm.request_lci) { ftm 121 net/wireless/pmsr.c out->ftm.request_civicloc = ftm 123 net/wireless/pmsr.c if (out->ftm.request_civicloc && !capa->ftm.request_civicloc) { ftm 337 net/wireless/pmsr.c res->ftm.failure_reason)) ftm 340 net/wireless/pmsr.c if (res->ftm.failure_reason == ftm 342 net/wireless/pmsr.c res->ftm.busy_retry_time && ftm 344 net/wireless/pmsr.c res->ftm.busy_retry_time)) ftm 354 net/wireless/pmsr.c res->ftm.val)) \ ftm 360 net/wireless/pmsr.c if (res->ftm.val##_valid) \ ftm 368 net/wireless/pmsr.c res->ftm.val, \ ftm 375 net/wireless/pmsr.c if (res->ftm.val##_valid) \ ftm 379 net/wireless/pmsr.c if (res->ftm.burst_index >= 0) ftm 388 net/wireless/pmsr.c if (res->ftm.tx_rate_valid && ftm 389 net/wireless/pmsr.c !nl80211_put_sta_rate(msg, &res->ftm.tx_rate, ftm 392 net/wireless/pmsr.c if (res->ftm.rx_rate_valid && ftm 393 net/wireless/pmsr.c !nl80211_put_sta_rate(msg, &res->ftm.rx_rate, ftm 402 net/wireless/pmsr.c if (res->ftm.lci && res->ftm.lci_len && ftm 404 net/wireless/pmsr.c res->ftm.lci_len, res->ftm.lci)) ftm 406 net/wireless/pmsr.c if (res->ftm.civicloc && res->ftm.civicloc_len && ftm 408 net/wireless/pmsr.c res->ftm.civicloc_len, res->ftm.civicloc))