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))