From 98d3e208e4ec5731aa4a310adfc6d59685e6d6b2 Mon Sep 17 00:00:00 2001
From: Eugene Syromiatnikov <esyr@redhat.com>
Date: Thu, 25 Jul 2019 13:54:10 +0200
Subject: [PATCH 7/7] Revert "iwlwifi: mvm: support FTM responder"
This reverts commit b73f9a4ae77d448eb501f746d3bbe1b737f38681.
---
drivers/net/wireless/intel/iwlwifi/fw/file.h | 6 -
drivers/net/wireless/intel/iwlwifi/mvm/Makefile | 2 +-
.../net/wireless/intel/iwlwifi/mvm/ftm-responder.c | 244 ---------------------
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 92 +-------
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 9 -
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 -
6 files changed, 5 insertions(+), 350 deletions(-)
delete mode 100644 drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c
Index: src/drivers/net/wireless/intel/iwlwifi/fw/file.h
===================================================================
--- src.orig/drivers/net/wireless/intel/iwlwifi/fw/file.h 2019-07-25 13:55:50.467603040 +0200
+++ src/drivers/net/wireless/intel/iwlwifi/fw/file.h 2019-07-25 13:56:30.727060711 +0200
@@ -394,15 +394,12 @@
* capability.
* @IWL_UCODE_TLV_CAPA_CSI_REPORTING: firmware is capable of being configured
* to report the CSI information with (certain) RX frames
- * @IWL_UCODE_TLV_CAPA_FTM_CALIBRATED: has FTM calibrated and thus supports both
- * initiator and responder
*
* @IWL_UCODE_TLV_CAPA_MLME_OFFLOAD: supports MLME offload
*
* @NUM_IWL_UCODE_TLV_CAPA: number of bits used
*/
enum iwl_ucode_tlv_capa {
- /* set 0 */
IWL_UCODE_TLV_CAPA_D0I3_SUPPORT = (__force iwl_ucode_tlv_capa_t)0,
IWL_UCODE_TLV_CAPA_LAR_SUPPORT = (__force iwl_ucode_tlv_capa_t)1,
IWL_UCODE_TLV_CAPA_UMAC_SCAN = (__force iwl_ucode_tlv_capa_t)2,
@@ -424,8 +421,6 @@
IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC = (__force iwl_ucode_tlv_capa_t)29,
IWL_UCODE_TLV_CAPA_BT_COEX_RRC = (__force iwl_ucode_tlv_capa_t)30,
IWL_UCODE_TLV_CAPA_GSCAN_SUPPORT = (__force iwl_ucode_tlv_capa_t)31,
-
- /* set 1 */
IWL_UCODE_TLV_CAPA_STA_PM_NOTIF = (__force iwl_ucode_tlv_capa_t)38,
IWL_UCODE_TLV_CAPA_BINDING_CDB_SUPPORT = (__force iwl_ucode_tlv_capa_t)39,
IWL_UCODE_TLV_CAPA_CDB_SUPPORT = (__force iwl_ucode_tlv_capa_t)40,
@@ -459,7 +454,6 @@
IWL_UCODE_TLV_CAPA_MCC_UPDATE_11AX_SUPPORT = (__force iwl_ucode_tlv_capa_t)89,
IWL_UCODE_TLV_CAPA_CSI_REPORTING = (__force iwl_ucode_tlv_capa_t)90,
- /* set 3 */
IWL_UCODE_TLV_CAPA_MLME_OFFLOAD = (__force iwl_ucode_tlv_capa_t)96,
NUM_IWL_UCODE_TLV_CAPA
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/Makefile
===================================================================
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/Makefile 2019-07-25 13:56:03.737424284 +0200
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/Makefile 2019-07-25 13:56:30.728060698 +0200
@@ -4,7 +4,7 @@
iwlmvm-y += utils.o rx.o rxmq.o tx.o binding.o quota.o sta.o sf.o
iwlmvm-y += scan.o time-event.o rs.o rs-fw.o
iwlmvm-y += power.o coex.o
-iwlmvm-y += tt.o offloading.o tdls.o ftm-responder.o
+iwlmvm-y += tt.o offloading.o tdls.o
iwlmvm-$(CONFIG_IWLWIFI_DEBUGFS) += debugfs.o debugfs-vif.o
iwlmvm-$(CONFIG_IWLWIFI_LEDS) += led.o
iwlmvm-$(CONFIG_PM) += d3.o
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c
===================================================================
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c 2019-06-27 14:54:04.133678337 +0200
+++ /dev/null 1970-01-01 00:00:00.000000000 +0000
@@ -1,244 +0,0 @@
-/******************************************************************************
- *
- * This file is provided under a dual BSD/GPLv2 license. When using or
- * redistributing this file, you may do so under either license.
- *
- * GPL LICENSE SUMMARY
- *
- * Copyright(c) 2015 - 2017 Intel Deutschland GmbH
- * Copyright (C) 2018 Intel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * The full GNU General Public License is included in this distribution
- * in the file called COPYING.
- *
- * Contact Information:
- * Intel Linux Wireless <linuxwifi@intel.com>
- * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
- *
- * BSD LICENSE
- *
- * Copyright(c) 2015 - 2017 Intel Deutschland GmbH
- * Copyright (C) 2018 Intel Corporation
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name Intel Corporation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- *****************************************************************************/
-#include <net/cfg80211.h>
-#include <linux/etherdevice.h>
-#include "mvm.h"
-#include "constants.h"
-
-static int
-iwl_mvm_ftm_responder_cmd(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif,
- struct cfg80211_chan_def *chandef)
-{
- struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
- struct iwl_tof_responder_config_cmd cmd = {
- .channel_num = chandef->chan->hw_value,
- .cmd_valid_fields =
- cpu_to_le32(IWL_TOF_RESPONDER_CMD_VALID_CHAN_INFO |
- IWL_TOF_RESPONDER_CMD_VALID_BSSID |
- IWL_TOF_RESPONDER_CMD_VALID_STA_ID),
- .sta_id = mvmvif->bcast_sta.sta_id,
- };
-
- lockdep_assert_held(&mvm->mutex);
-
- switch (chandef->width) {
- case NL80211_CHAN_WIDTH_20_NOHT:
- cmd.bandwidth = IWL_TOF_BW_20_LEGACY;
- break;
- case NL80211_CHAN_WIDTH_20:
- cmd.bandwidth = IWL_TOF_BW_20_HT;
- break;
- case NL80211_CHAN_WIDTH_40:
- cmd.bandwidth = IWL_TOF_BW_40;
- cmd.ctrl_ch_position = iwl_mvm_get_ctrl_pos(chandef);
- break;
- case NL80211_CHAN_WIDTH_80:
- cmd.bandwidth = IWL_TOF_BW_80;
- cmd.ctrl_ch_position = iwl_mvm_get_ctrl_pos(chandef);
- break;
- default:
- WARN_ON(1);
- return -EINVAL;
- }
-
- memcpy(cmd.bssid, vif->addr, ETH_ALEN);
-
- return iwl_mvm_send_cmd_pdu(mvm, iwl_cmd_id(TOF_RESPONDER_CONFIG_CMD,
- LOCATION_GROUP, 0),
- 0, sizeof(cmd), &cmd);
-}
-
-static int
-iwl_mvm_ftm_responder_dyn_cfg_cmd(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif,
- struct ieee80211_ftm_responder_params *params)
-{
- struct iwl_tof_responder_dyn_config_cmd cmd = {
- .lci_len = cpu_to_le32(params->lci_len + 2),
- .civic_len = cpu_to_le32(params->civicloc_len + 2),
- };
- u8 data[IWL_LCI_CIVIC_IE_MAX_SIZE] = {0};
- struct iwl_host_cmd hcmd = {
- .id = iwl_cmd_id(TOF_RESPONDER_DYN_CONFIG_CMD,
- LOCATION_GROUP, 0),
- .data[0] = &cmd,
- .len[0] = sizeof(cmd),
- .data[1] = &data,
- /* .len[1] set later */
- /* may not be able to DMA from stack */
- .dataflags[1] = IWL_HCMD_DFL_DUP,
- };
- u32 aligned_lci_len = ALIGN(params->lci_len + 2, 4);
- u32 aligned_civicloc_len = ALIGN(params->civicloc_len + 2, 4);
- u8 *pos = data;
-
- lockdep_assert_held(&mvm->mutex);
-
- if (aligned_lci_len + aligned_civicloc_len > sizeof(data)) {
- IWL_ERR(mvm, "LCI/civicloc data too big (%zd + %zd)\n",
- params->lci_len, params->civicloc_len);
- return -ENOBUFS;
- }
-
- pos[0] = WLAN_EID_MEASURE_REPORT;
- pos[1] = params->lci_len;
- memcpy(pos + 2, params->lci, params->lci_len);
-
- pos += aligned_lci_len;
- pos[0] = WLAN_EID_MEASURE_REPORT;
- pos[1] = params->civicloc_len;
- memcpy(pos + 2, params->civicloc, params->civicloc_len);
-
- hcmd.len[1] = aligned_lci_len + aligned_civicloc_len;
-
- return iwl_mvm_send_cmd(mvm, &hcmd);
-}
-
-int iwl_mvm_ftm_start_responder(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
-{
- struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
- struct ieee80211_ftm_responder_params *params;
- struct ieee80211_chanctx_conf ctx, *pctx;
- u16 *phy_ctxt_id;
- struct iwl_mvm_phy_ctxt *phy_ctxt;
- int ret;
-
- params = vif->bss_conf.ftmr_params;
-
- lockdep_assert_held(&mvm->mutex);
-
- if (WARN_ON_ONCE(!vif->bss_conf.ftm_responder))
- return -EINVAL;
-
- if (vif->p2p || vif->type != NL80211_IFTYPE_AP ||
- !mvmvif->ap_ibss_active) {
- IWL_ERR(mvm, "Cannot start responder, not in AP mode\n");
- return -EIO;
- }
-
- rcu_read_lock();
- pctx = rcu_dereference(vif->chanctx_conf);
- /* Copy the ctx to unlock the rcu and send the phy ctxt. We don't care
- * about changes in the ctx after releasing the lock because the driver
- * is still protected by the mutex. */
- ctx = *pctx;
- phy_ctxt_id = (u16 *)pctx->drv_priv;
- rcu_read_unlock();
-
- phy_ctxt = &mvm->phy_ctxts[*phy_ctxt_id];
- ret = iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, &ctx.def,
- ctx.rx_chains_static,
- ctx.rx_chains_dynamic);
- if (ret)
- return ret;
-
- ret = iwl_mvm_ftm_responder_cmd(mvm, vif, &ctx.def);
- if (ret)
- return ret;
-
- if (params)
- ret = iwl_mvm_ftm_responder_dyn_cfg_cmd(mvm, vif, params);
-
- return ret;
-}
-
-void iwl_mvm_ftm_restart_responder(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif)
-{
- if (!vif->bss_conf.ftm_responder)
- return;
-
- iwl_mvm_ftm_start_responder(mvm, vif);
-}
-
-void iwl_mvm_ftm_responder_stats(struct iwl_mvm *mvm,
- struct iwl_rx_cmd_buffer *rxb)
-{
- struct iwl_rx_packet *pkt = rxb_addr(rxb);
- struct iwl_ftm_responder_stats *resp = (void *)pkt->data;
- struct cfg80211_ftm_responder_stats *stats = &mvm->ftm_resp_stats;
- u32 flags = le32_to_cpu(resp->flags);
-
- if (resp->success_ftm == resp->ftm_per_burst)
- stats->success_num++;
- else if (resp->success_ftm >= 2)
- stats->partial_num++;
- else
- stats->failed_num++;
-
- if ((flags & FTM_RESP_STAT_ASAP_REQ) &&
- (flags & FTM_RESP_STAT_ASAP_RESP))
- stats->asap_num++;
-
- if (flags & FTM_RESP_STAT_NON_ASAP_RESP)
- stats->non_asap_num++;
-
- stats->total_duration_ms += le32_to_cpu(resp->duration) / USEC_PER_MSEC;
-
- if (flags & FTM_RESP_STAT_TRIGGER_UNKNOWN)
- stats->unknown_triggers_num++;
-
- if (flags & FTM_RESP_STAT_DUP)
- stats->reschedule_requests_num++;
-
- if (flags & FTM_RESP_STAT_NON_ASAP_OUT_WIN)
- stats->out_of_window_triggers_num++;
-}
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
===================================================================
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c 2019-07-25 13:56:03.738424271 +0200
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c 2019-07-25 13:56:30.729060684 +0200
@@ -549,11 +549,6 @@
hw->wiphy->n_cipher_suites++;
}
- if (fw_has_capa(&mvm->fw->ucode_capa,
- IWL_UCODE_TLV_CAPA_FTM_CALIBRATED))
- wiphy_ext_feature_set(hw->wiphy,
- NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER);
-
ieee80211_hw_set(hw, SINGLE_SCAN_ON_ALL_BANDS);
hw->wiphy->features |=
NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR |
@@ -1760,9 +1755,6 @@
IEEE80211_VIF_SUPPORTS_CQM_RSSI);
}
- if (vif->bss_conf.ftm_responder)
- memset(&mvm->ftm_resp_stats, 0, sizeof(mvm->ftm_resp_stats));
-
iwl_mvm_vif_dbgfs_clean(mvm, vif);
/*
@@ -2711,8 +2703,6 @@
if (iwl_mvm_phy_ctx_count(mvm) > 1)
iwl_mvm_teardown_tdls_peers(mvm);
- iwl_mvm_ftm_restart_responder(mvm, vif);
-
goto out_unlock;
out_quota_failed:
@@ -2821,15 +2811,6 @@
bss_conf->txpower);
iwl_mvm_set_tx_power(mvm, vif, bss_conf->txpower);
}
-
- if (changes & BSS_CHANGED_FTM_RESPONDER) {
- int ret = iwl_mvm_ftm_start_responder(mvm, vif);
-
- if (ret)
- IWL_WARN(mvm, "Failed to enable FTM responder (%d)\n",
- ret);
- }
-
}
static void iwl_mvm_bss_info_changed(struct ieee80211_hw *hw,
@@ -3950,43 +3931,11 @@
return 0;
}
-struct iwl_mvm_ftm_responder_iter_data {
- bool responder;
- struct ieee80211_chanctx_conf *ctx;
-};
-
-static void iwl_mvm_ftm_responder_chanctx_iter(void *_data, u8 *mac,
- struct ieee80211_vif *vif)
-{
- struct iwl_mvm_ftm_responder_iter_data *data = _data;
-
- if (rcu_access_pointer(vif->chanctx_conf) == data->ctx &&
- vif->type == NL80211_IFTYPE_AP && vif->bss_conf.ftmr_params)
- data->responder = true;
-}
-
-static bool iwl_mvm_is_ftm_responder_chanctx(struct iwl_mvm *mvm,
- struct ieee80211_chanctx_conf *ctx)
-{
- struct iwl_mvm_ftm_responder_iter_data data = {
- .responder = false,
- .ctx = ctx,
- };
-
- ieee80211_iterate_active_interfaces_atomic(mvm->hw,
- IEEE80211_IFACE_ITER_NORMAL,
- iwl_mvm_ftm_responder_chanctx_iter,
- &data);
- return data.responder;
-}
-
static int __iwl_mvm_add_chanctx(struct iwl_mvm *mvm,
struct ieee80211_chanctx_conf *ctx)
{
u16 *phy_ctxt_id = (u16 *)ctx->drv_priv;
struct iwl_mvm_phy_ctxt *phy_ctxt;
- bool responder = iwl_mvm_is_ftm_responder_chanctx(mvm, ctx);
- struct cfg80211_chan_def *def = responder ? &ctx->def : &ctx->min_def;
int ret;
lockdep_assert_held(&mvm->mutex);
@@ -3999,7 +3948,7 @@
goto out;
}
- ret = iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, def,
+ ret = iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, &ctx->min_def,
ctx->rx_chains_static,
ctx->rx_chains_dynamic);
if (ret) {
@@ -4054,8 +4003,6 @@
struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
u16 *phy_ctxt_id = (u16 *)ctx->drv_priv;
struct iwl_mvm_phy_ctxt *phy_ctxt = &mvm->phy_ctxts[*phy_ctxt_id];
- bool responder = iwl_mvm_is_ftm_responder_chanctx(mvm, ctx);
- struct cfg80211_chan_def *def = responder ? &ctx->def : &ctx->min_def;
if (WARN_ONCE((phy_ctxt->ref > 1) &&
(changed & ~(IEEE80211_CHANCTX_CHANGE_WIDTH |
@@ -4070,17 +4017,17 @@
/* we are only changing the min_width, may be a noop */
if (changed == IEEE80211_CHANCTX_CHANGE_MIN_WIDTH) {
- if (phy_ctxt->width == def->width)
+ if (phy_ctxt->width == ctx->min_def.width)
goto out_unlock;
/* we are just toggling between 20_NOHT and 20 */
if (phy_ctxt->width <= NL80211_CHAN_WIDTH_20 &&
- def->width <= NL80211_CHAN_WIDTH_20)
+ ctx->min_def.width <= NL80211_CHAN_WIDTH_20)
goto out_unlock;
}
iwl_mvm_bt_coex_vif_change(mvm);
- iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, def,
+ iwl_mvm_phy_ctxt_changed(mvm, phy_ctxt, &ctx->min_def,
ctx->rx_chains_static,
ctx->rx_chains_dynamic);
@@ -5010,35 +4957,6 @@
mutex_unlock(&mvm->mutex);
}
-static int
-iwl_mvm_mac_get_ftm_responder_stats(struct ieee80211_hw *hw,
- struct ieee80211_vif *vif,
- struct cfg80211_ftm_responder_stats *stats)
-{
- struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
- struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
-
- if (vif->p2p || vif->type != NL80211_IFTYPE_AP ||
- !mvmvif->ap_ibss_active || !vif->bss_conf.ftm_responder)
- return -EINVAL;
-
- mutex_lock(&mvm->mutex);
- *stats = mvm->ftm_resp_stats;
- mutex_unlock(&mvm->mutex);
-
- stats->filled = BIT(NL80211_FTM_STATS_SUCCESS_NUM) |
- BIT(NL80211_FTM_STATS_PARTIAL_NUM) |
- BIT(NL80211_FTM_STATS_FAILED_NUM) |
- BIT(NL80211_FTM_STATS_ASAP_NUM) |
- BIT(NL80211_FTM_STATS_NON_ASAP_NUM) |
- BIT(NL80211_FTM_STATS_TOTAL_DURATION_MSEC) |
- BIT(NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM) |
- BIT(NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM) |
- BIT(NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM);
-
- return 0;
-}
-
static bool iwl_mvm_can_hw_csum(struct sk_buff *skb)
{
u8 protocol = ip_hdr(skb)->protocol;
@@ -5143,8 +5061,6 @@
#endif
.get_survey = iwl_mvm_mac_get_survey,
.sta_statistics = iwl_mvm_mac_sta_statistics,
- .get_ftm_responder_stats = iwl_mvm_mac_get_ftm_responder_stats,
-
.can_aggregate_in_amsdu = iwl_mvm_mac_can_aggregate,
#ifdef CONFIG_IWLWIFI_DEBUGFS
.sta_add_debugfs = iwl_mvm_sta_add_debugfs,
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
===================================================================
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h 2019-07-25 13:56:03.739424257 +0200
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h 2019-07-25 13:56:30.730060671 +0200
@@ -1153,8 +1153,6 @@
u32 ciphers[IWL_MVM_NUM_CIPHERS];
struct ieee80211_cipher_scheme cs[IWL_UCODE_MAX_CS];
- struct cfg80211_ftm_responder_stats ftm_resp_stats;
-
struct ieee80211_vif *nan_vif;
#define IWL_MAX_BAID 32
struct iwl_mvm_baid_data __rcu *baid_map[IWL_MAX_BAID];
@@ -2064,13 +2062,6 @@
int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
bool added_vif);
-/* FTM responder */
-int iwl_mvm_ftm_start_responder(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
-void iwl_mvm_ftm_restart_responder(struct iwl_mvm *mvm,
- struct ieee80211_vif *vif);
-void iwl_mvm_ftm_responder_stats(struct iwl_mvm *mvm,
- struct iwl_rx_cmd_buffer *rxb);
-
/* TDLS */
/*
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
===================================================================
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/ops.c 2019-07-25 13:56:03.739424257 +0200
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/ops.c 2019-07-25 13:56:30.731060658 +0200
@@ -300,8 +300,6 @@
RX_HANDLER_ASYNC_LOCKED),
RX_HANDLER(MFUART_LOAD_NOTIFICATION, iwl_mvm_rx_mfuart_notif,
RX_HANDLER_SYNC),
- RX_HANDLER_GRP(LOCATION_GROUP, TOF_RESPONDER_STATS,
- iwl_mvm_ftm_responder_stats, RX_HANDLER_ASYNC_LOCKED),
RX_HANDLER_GRP(DEBUG_GROUP, MFU_ASSERT_DUMP_NTF,
iwl_mvm_mfu_assert_dump_notif, RX_HANDLER_SYNC),
RX_HANDLER_GRP(PROT_OFFLOAD_GROUP, STORED_BEACON_NTF,