You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
6.4 KiB
148 lines
6.4 KiB
From 4b37b55e8a1c275e1627aa29b195db94b0cac963 Mon Sep 17 00:00:00 2001
|
|
From: Eugene Syromiatnikov <esyr@redhat.com>
|
|
Date: Thu, 5 Sep 2019 18:11:20 +0200
|
|
Subject: [PATCH 07/43] Revert "iwlwifi: mvm: report all NO_DATA events to
|
|
mac80211"
|
|
|
|
This reverts commit d47cdb884a9901a137edaa66e9866c98048e909c.
|
|
---
|
|
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 8 +++----
|
|
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 6 +++---
|
|
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 31 ++++++++++-----------------
|
|
3 files changed, 18 insertions(+), 27 deletions(-)
|
|
|
|
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
|
|
===================================================================
|
|
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h 2019-09-05 14:40:03.194476607 +0200
|
|
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h 2019-09-06 01:25:41.666340915 +0200
|
|
@@ -8,7 +8,7 @@
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
|
- * Copyright(c) 2018 - 2019 Intel Corporation
|
|
+ * 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
|
|
@@ -31,7 +31,7 @@
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
|
- * Copyright(c) 2018 - 2019 Intel Corporation
|
|
+ * Copyright(c) 2018 Intel Corporation
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -1606,8 +1606,8 @@
|
|
struct iwl_rx_cmd_buffer *rxb);
|
|
void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,
|
|
struct iwl_rx_cmd_buffer *rxb, int queue);
|
|
-void iwl_mvm_rx_monitor_no_data(struct iwl_mvm *mvm, struct napi_struct *napi,
|
|
- struct iwl_rx_cmd_buffer *rxb, int queue);
|
|
+void iwl_mvm_rx_monitor_ndp(struct iwl_mvm *mvm, struct napi_struct *napi,
|
|
+ struct iwl_rx_cmd_buffer *rxb, int queue);
|
|
void iwl_mvm_rx_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
|
|
struct iwl_rx_cmd_buffer *rxb, int queue);
|
|
int iwl_mvm_notify_rx_queue(struct iwl_mvm *mvm, u32 rxq_mask,
|
|
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
|
|
===================================================================
|
|
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/ops.c 2019-09-05 14:40:03.194476607 +0200
|
|
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/ops.c 2019-09-06 01:25:41.666340915 +0200
|
|
@@ -8,7 +8,7 @@
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
|
- * Copyright(c) 2018 - 2019 Intel Corporation
|
|
+ * 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
|
|
@@ -31,7 +31,7 @@
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
* Copyright(c) 2016 - 2017 Intel Deutschland GmbH
|
|
- * Copyright(c) 2018 - 2019 Intel Corporation
|
|
+ * Copyright(c) 2018 Intel Corporation
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -1085,7 +1085,7 @@
|
|
else if (cmd == WIDE_ID(LEGACY_GROUP, FRAME_RELEASE))
|
|
iwl_mvm_rx_frame_release(mvm, napi, rxb, 0);
|
|
else if (cmd == WIDE_ID(DATA_PATH_GROUP, RX_NO_DATA_NOTIF))
|
|
- iwl_mvm_rx_monitor_no_data(mvm, napi, rxb, 0);
|
|
+ iwl_mvm_rx_monitor_ndp(mvm, napi, rxb, 0);
|
|
else
|
|
iwl_mvm_rx_common(mvm, rxb, pkt);
|
|
}
|
|
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
|
|
===================================================================
|
|
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c 2019-09-06 01:25:41.483343249 +0200
|
|
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c 2019-09-06 01:25:41.666340915 +0200
|
|
@@ -8,7 +8,7 @@
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
* Copyright(c) 2015 - 2017 Intel Deutschland GmbH
|
|
- * Copyright(c) 2018 - 2019 Intel Corporation
|
|
+ * 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
|
|
@@ -31,7 +31,7 @@
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
* Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
* Copyright(c) 2015 - 2017 Intel Deutschland GmbH
|
|
- * Copyright(c) 2018 - 2019 Intel Corporation
|
|
+ * Copyright(c) 2018 Intel Corporation
|
|
* All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
@@ -1686,8 +1686,8 @@
|
|
rcu_read_unlock();
|
|
}
|
|
|
|
-void iwl_mvm_rx_monitor_no_data(struct iwl_mvm *mvm, struct napi_struct *napi,
|
|
- struct iwl_rx_cmd_buffer *rxb, int queue)
|
|
+void iwl_mvm_rx_monitor_ndp(struct iwl_mvm *mvm, struct napi_struct *napi,
|
|
+ struct iwl_rx_cmd_buffer *rxb, int queue)
|
|
{
|
|
struct ieee80211_rx_status *rx_status;
|
|
struct iwl_rx_packet *pkt = rxb_addr(rxb);
|
|
@@ -1708,6 +1708,10 @@
|
|
if (unlikely(test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)))
|
|
return;
|
|
|
|
+ /* Currently only NDP type is supported */
|
|
+ if (info_type != RX_NO_DATA_INFO_TYPE_NDP)
|
|
+ return;
|
|
+
|
|
energy_a = (rssi & RX_NO_DATA_CHAIN_A_MSK) >> RX_NO_DATA_CHAIN_A_POS;
|
|
energy_b = (rssi & RX_NO_DATA_CHAIN_B_MSK) >> RX_NO_DATA_CHAIN_B_POS;
|
|
channel = (rssi & RX_NO_DATA_CHANNEL_MSK) >> RX_NO_DATA_CHANNEL_POS;
|
|
@@ -1729,22 +1733,9 @@
|
|
|
|
/* 0-length PSDU */
|
|
rx_status->flag |= RX_FLAG_NO_PSDU;
|
|
-
|
|
- switch (info_type) {
|
|
- case RX_NO_DATA_INFO_TYPE_NDP:
|
|
- rx_status->zero_length_psdu_type =
|
|
- IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING;
|
|
- break;
|
|
- case RX_NO_DATA_INFO_TYPE_MU_UNMATCHED:
|
|
- case RX_NO_DATA_INFO_TYPE_HE_TB_UNMATCHED:
|
|
- rx_status->zero_length_psdu_type =
|
|
- IEEE80211_RADIOTAP_ZERO_LEN_PSDU_NOT_CAPTURED;
|
|
- break;
|
|
- default:
|
|
- rx_status->zero_length_psdu_type =
|
|
- IEEE80211_RADIOTAP_ZERO_LEN_PSDU_VENDOR;
|
|
- break;
|
|
- }
|
|
+ /* currently this is the only type for which we get this notif */
|
|
+ rx_status->zero_length_psdu_type =
|
|
+ IEEE80211_RADIOTAP_ZERO_LEN_PSDU_SOUNDING;
|
|
|
|
/* This may be overridden by iwl_mvm_rx_he() to HE_RU */
|
|
switch (rate_n_flags & RATE_MCS_CHAN_WIDTH_MSK) {
|