linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery
@ 2020-04-10 17:06 Maharaja Kennadyrajan
  2020-04-10 17:06 ` [PATCH] ath11k: Fix fw assert by setting proper vht cap Maharaja Kennadyrajan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Maharaja Kennadyrajan @ 2020-04-10 17:06 UTC (permalink / raw)
  To: ath11k; +Cc: linux-wireless, Maharaja Kennadyrajan

Debugfs pdev entries should be cleaned up during the crash
on recovery. If not, mac register will fail for the reason
that it is already registered during core reconfigure.

Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/debug.c | 3 +++
 drivers/net/wireless/ath/ath11k/mac.c   | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/drivers/net/wireless/ath/ath11k/debug.c b/drivers/net/wireless/ath/ath11k/debug.c
index 8d48517..825e7ba6 100644
--- a/drivers/net/wireless/ath/ath11k/debug.c
+++ b/drivers/net/wireless/ath/ath11k/debug.c
@@ -803,6 +803,9 @@ static ssize_t ath11k_debug_dump_soc_rx_stats(struct file *file,
 
 int ath11k_debug_pdev_create(struct ath11k_base *ab)
 {
+	if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags))
+		return 0;
+
 	ab->debugfs_soc = debugfs_create_dir(ab->hw_params.name, ab->debugfs_ath11k);
 
 	if (IS_ERR_OR_NULL(ab->debugfs_soc)) {
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 9f8bc19..4783394 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -5891,6 +5891,9 @@ int ath11k_mac_register(struct ath11k_base *ab)
 	int i;
 	int ret;
 
+	if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags))
+		return 0;
+
 	for (i = 0; i < ab->num_radios; i++) {
 		pdev = &ab->pdevs[i];
 		ar = pdev->ar;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] ath11k: Fix fw assert by setting proper vht cap
  2020-04-10 17:06 [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Maharaja Kennadyrajan
@ 2020-04-10 17:06 ` Maharaja Kennadyrajan
  2020-04-15  8:00   ` Kalle Valo
  2020-04-10 17:06 ` [PATCH] ath11k: Fix rx_filter flags setting for per peer rx_stats Maharaja Kennadyrajan
  2020-04-15  7:59 ` [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Kalle Valo
  2 siblings, 1 reply; 6+ messages in thread
From: Maharaja Kennadyrajan @ 2020-04-10 17:06 UTC (permalink / raw)
  To: ath11k; +Cc: linux-wireless, Ritesh Singh, Maharaja Kennadyrajan

From: Ritesh Singh <ritesi@codeaurora.org>

After setting fixed vht-rate if new station is trying to
assoc with mu_bfee cap, or if a sta is already connected
with mu_bfee cap then set the fixed vht-rate and
reconnecting the sta, FW assert is happening.

So to avoid this, reset the MU_BEAMFORMEE bit in vht->caps,
if mcs_index is invalid for nss 1.

Signed-off-by: Ritesh Singh <ritesi@codeaurora.org>
Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/mac.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 9f8bc19..29e1267 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -1142,6 +1142,10 @@ static void ath11k_peer_assoc_h_vht(struct ath11k *ar,
 	arg->tx_mcs_set &= ~IEEE80211_VHT_MCS_SUPPORT_0_11_MASK;
 	arg->tx_mcs_set |= IEEE80211_DISABLE_VHT_MCS_SUPPORT_0_11;
 
+	if ((arg->tx_mcs_set & IEEE80211_VHT_MCS_NOT_SUPPORTED) ==
+			IEEE80211_VHT_MCS_NOT_SUPPORTED)
+		arg->peer_vht_caps &= ~IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE;
+
 	/* TODO:  Check */
 	arg->tx_max_mcs_nss = 0xFF;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] ath11k: Fix rx_filter flags setting for per peer rx_stats
  2020-04-10 17:06 [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Maharaja Kennadyrajan
  2020-04-10 17:06 ` [PATCH] ath11k: Fix fw assert by setting proper vht cap Maharaja Kennadyrajan
@ 2020-04-10 17:06 ` Maharaja Kennadyrajan
  2020-04-15  8:01   ` Kalle Valo
  2020-04-15  7:59 ` [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Kalle Valo
  2 siblings, 1 reply; 6+ messages in thread
From: Maharaja Kennadyrajan @ 2020-04-10 17:06 UTC (permalink / raw)
  To: ath11k; +Cc: linux-wireless, Maharaja Kennadyrajan

Rx_filter flags are set with default filter flags during
wifi up/down sequence even though the 'ext_rx_stats' debugfs
is enabled as 1. So, that we are not getting proper per peer
rx_stats.
Hence, fixing this by setting the missing rx_filter when
ext_rx_stats is already set/enabled.

Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/core.h  |  1 +
 drivers/net/wireless/ath/ath11k/debug.c |  2 ++
 drivers/net/wireless/ath/ath11k/debug.h | 10 ++++++++++
 drivers/net/wireless/ath/ath11k/mac.c   |  4 +++-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index b4c3e041..a8ef95f 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -392,6 +392,7 @@ struct ath11k_debug {
 	u32 pktlog_mode;
 	u32 pktlog_peer_valid;
 	u8 pktlog_peer_addr[ETH_ALEN];
+	u32 rx_filter;
 };
 
 struct ath11k_per_peer_tx_stats {
diff --git a/drivers/net/wireless/ath/ath11k/debug.c b/drivers/net/wireless/ath/ath11k/debug.c
index 8d48517..e479504 100644
--- a/drivers/net/wireless/ath/ath11k/debug.c
+++ b/drivers/net/wireless/ath/ath11k/debug.c
@@ -698,6 +698,8 @@ static ssize_t ath11k_write_extd_rx_stats(struct file *file,
 		tlv_filter = ath11k_mac_mon_status_filter_default;
 	}
 
+	ar->debug.rx_filter = tlv_filter.rx_filter;
+
 	ring_id = ar->dp.rx_mon_status_refill_ring.refill_buf_ring.ring_id;
 	ret = ath11k_dp_tx_htt_rx_filter_setup(ar->ab, ring_id, ar->dp.mac_id,
 					       HAL_RXDMA_MONITOR_STATUS,
diff --git a/drivers/net/wireless/ath/ath11k/debug.h b/drivers/net/wireless/ath/ath11k/debug.h
index 4a3ff82..45454fc 100644
--- a/drivers/net/wireless/ath/ath11k/debug.h
+++ b/drivers/net/wireless/ath/ath11k/debug.h
@@ -188,6 +188,11 @@ static inline int ath11k_debug_is_extd_rx_stats_enabled(struct ath11k *ar)
 	return ar->debug.extd_rx_stats;
 }
 
+static inline int ath11k_debug_rx_filter(struct ath11k *ar)
+{
+	return ar->debug.rx_filter;
+}
+
 void ath11k_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
 			    struct ieee80211_sta *sta, struct dentry *dir);
 void
@@ -269,6 +274,11 @@ static inline bool ath11k_debug_is_pktlog_peer_valid(struct ath11k *ar, u8 *addr
 	return false;
 }
 
+static inline int ath11k_debug_rx_filter(struct ath11k *ar)
+{
+	return 0;
+}
+
 static inline void
 ath11k_accumulate_per_peer_tx_stats(struct ath11k_sta *arsta,
 				    struct ath11k_per_peer_tx_stats *peer_stats,
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 9f8bc19..3665e72 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -3877,8 +3877,10 @@ static int ath11k_mac_config_mon_status_default(struct ath11k *ar, bool enable)
 	struct htt_rx_ring_tlv_filter tlv_filter = {0};
 	u32 ring_id;
 
-	if (enable)
+	if (enable) {
 		tlv_filter = ath11k_mac_mon_status_filter_default;
+		tlv_filter.rx_filter = ath11k_debug_rx_filter(ar);
+	}
 
 	ring_id = ar->dp.rx_mon_status_refill_ring.refill_buf_ring.ring_id;
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery
  2020-04-10 17:06 [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Maharaja Kennadyrajan
  2020-04-10 17:06 ` [PATCH] ath11k: Fix fw assert by setting proper vht cap Maharaja Kennadyrajan
  2020-04-10 17:06 ` [PATCH] ath11k: Fix rx_filter flags setting for per peer rx_stats Maharaja Kennadyrajan
@ 2020-04-15  7:59 ` Kalle Valo
  2 siblings, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2020-04-15  7:59 UTC (permalink / raw)
  To: Maharaja Kennadyrajan; +Cc: ath11k, linux-wireless, Maharaja Kennadyrajan

Maharaja Kennadyrajan <mkenna@codeaurora.org> wrote:

> Debugfs pdev entries should be cleaned up during the crash
> on recovery. If not, mac register will fail for the reason
> that it is already registered during core reconfigure.
> 
> Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

6fc3b94ef596 ath11k: Cleanup in pdev destroy and mac register during crash on recovery

-- 
https://patchwork.kernel.org/patch/11483477/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath11k: Fix fw assert by setting proper vht cap
  2020-04-10 17:06 ` [PATCH] ath11k: Fix fw assert by setting proper vht cap Maharaja Kennadyrajan
@ 2020-04-15  8:00   ` Kalle Valo
  0 siblings, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2020-04-15  8:00 UTC (permalink / raw)
  To: Maharaja Kennadyrajan
  Cc: ath11k, linux-wireless, Ritesh Singh, Maharaja Kennadyrajan

Maharaja Kennadyrajan <mkenna@codeaurora.org> wrote:

> After setting fixed vht-rate if new station is trying to
> assoc with mu_bfee cap, or if a sta is already connected
> with mu_bfee cap then set the fixed vht-rate and
> reconnecting the sta, FW assert is happening.
> 
> So to avoid this, reset the MU_BEAMFORMEE bit in vht->caps,
> if mcs_index is invalid for nss 1.
> 
> Signed-off-by: Ritesh Singh <ritesi@codeaurora.org>
> Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

40c766d4a49c ath11k: Fix fw assert by setting proper vht cap

-- 
https://patchwork.kernel.org/patch/11483471/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] ath11k: Fix rx_filter flags setting for per peer rx_stats
  2020-04-10 17:06 ` [PATCH] ath11k: Fix rx_filter flags setting for per peer rx_stats Maharaja Kennadyrajan
@ 2020-04-15  8:01   ` Kalle Valo
  0 siblings, 0 replies; 6+ messages in thread
From: Kalle Valo @ 2020-04-15  8:01 UTC (permalink / raw)
  To: Maharaja Kennadyrajan; +Cc: ath11k, linux-wireless, Maharaja Kennadyrajan

Maharaja Kennadyrajan <mkenna@codeaurora.org> wrote:

> Rx_filter flags are set with default filter flags during
> wifi up/down sequence even though the 'ext_rx_stats' debugfs
> is enabled as 1. So, that we are not getting proper per peer
> rx_stats.
> Hence, fixing this by setting the missing rx_filter when
> ext_rx_stats is already set/enabled.
> 
> Signed-off-by: Maharaja Kennadyrajan <mkenna@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

ec48d28ba291 ath11k: Fix rx_filter flags setting for per peer rx_stats

-- 
https://patchwork.kernel.org/patch/11483475/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-04-15  8:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-10 17:06 [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Maharaja Kennadyrajan
2020-04-10 17:06 ` [PATCH] ath11k: Fix fw assert by setting proper vht cap Maharaja Kennadyrajan
2020-04-15  8:00   ` Kalle Valo
2020-04-10 17:06 ` [PATCH] ath11k: Fix rx_filter flags setting for per peer rx_stats Maharaja Kennadyrajan
2020-04-15  8:01   ` Kalle Valo
2020-04-15  7:59 ` [PATCH] ath11k: Cleanup in pdev destroy and mac register during crash on recovery Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).