diff options
Diffstat (limited to 'package/kernel/mac80211/patches/380-0011-ath10k-fix-spectral-scan-for-QCA9984-and-QCA9888-chi.patch')
-rw-r--r-- | package/kernel/mac80211/patches/380-0011-ath10k-fix-spectral-scan-for-QCA9984-and-QCA9888-chi.patch | 156 |
1 files changed, 0 insertions, 156 deletions
diff --git a/package/kernel/mac80211/patches/380-0011-ath10k-fix-spectral-scan-for-QCA9984-and-QCA9888-chi.patch b/package/kernel/mac80211/patches/380-0011-ath10k-fix-spectral-scan-for-QCA9984-and-QCA9888-chi.patch deleted file mode 100644 index b974113b5e..0000000000 --- a/package/kernel/mac80211/patches/380-0011-ath10k-fix-spectral-scan-for-QCA9984-and-QCA9888-chi.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 2e9bcd0d73243f5e49daf92508d64cc33c30da01 Mon Sep 17 00:00:00 2001 -From: Karthikeyan Periyasamy <periyasa@codeaurora.org> -Date: Tue, 29 May 2018 17:01:13 +0530 -Subject: [PATCH] ath10k: fix spectral scan for QCA9984 and QCA9888 chipsets - -The spectral scan has been always broken on QCA9984 and QCA9888. - -Introduce a hardware parameter 'spectral_bin_offset' to resolve this issue for -QCA9984 and QCA9888 chipsets. For other chipsets, the hardware parameter -'spectral_bin_offset' is zero so that existing behaviour is retained as it is. - -In QCA9984 and QCA9888 chipsets, hardware param value 'spectral_bin_discard' -is 12 bytes. This 12 bytes is derived as the sum of segment index (4 bytes), -extra bins before the actual data (4 bytes) and extra bins after the actual -data (4 bytes). Always discarding (12 bytes) happens at end of the samples and -incorrect samples got dumped, so that user can find incorrect arrangement -samples in spectral scan dump. - -To fix this issue, we have to discard first 8 bytes and last 4 bytes in every -samples, so totally 12 bytes are discarded. In every sample we need to consider -the offset while taking the actual spectral data. For QCA9984, QCA9888 the -offset is 8 bytes (segment index + extra bins before actual data). - -Hardware tested: QCA9984 and QCA9888 -Firmware tested: 10.4-3.5.3-00053 - -Signed-off-by: Karthikeyan Periyasamy <periyasa@codeaurora.org> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - drivers/net/wireless/ath/ath10k/core.c | 13 +++++++++++++ - drivers/net/wireless/ath/ath10k/hw.h | 3 +++ - drivers/net/wireless/ath/ath10k/spectral.c | 2 +- - 3 files changed, 17 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/ath/ath10k/core.c -+++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -72,6 +72,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca988x_ops, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -96,6 +97,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca988x_ops, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -119,6 +121,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca988x_ops, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -142,6 +145,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca988x_ops, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -165,6 +169,8 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca988x_ops, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -191,6 +197,7 @@ static const struct ath10k_hw_params ath - .target_cpu_freq = 176000000, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -220,6 +227,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca99x0_ops, - .decap_align_bytes = 1, - .spectral_bin_discard = 4, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 11, -@@ -250,6 +258,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca99x0_ops, - .decap_align_bytes = 1, - .spectral_bin_discard = 12, -+ .spectral_bin_offset = 8, - - /* Can do only 2x2 VHT160 or 80+80. 1560Mbps is 4x4 80Mhz - * or 2x2 160Mhz, long-guard-interval. -@@ -283,6 +292,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca99x0_ops, - .decap_align_bytes = 1, - .spectral_bin_discard = 12, -+ .spectral_bin_offset = 8, - - /* Can do only 1x1 VHT160 or 80+80. 780Mbps is 2x2 80Mhz or - * 1x1 160Mhz, long-guard-interval. -@@ -310,6 +320,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca988x_ops, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -335,6 +346,7 @@ static const struct ath10k_hw_params ath - .target_cpu_freq = 176000000, - .decap_align_bytes = 4, - .spectral_bin_discard = 0, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 8, -@@ -365,6 +377,7 @@ static const struct ath10k_hw_params ath - .hw_ops = &qca99x0_ops, - .decap_align_bytes = 1, - .spectral_bin_discard = 4, -+ .spectral_bin_offset = 0, - .vht160_mcs_rx_highest = 0, - .vht160_mcs_tx_highest = 0, - .n_cipher_suites = 11, ---- a/drivers/net/wireless/ath/ath10k/hw.h -+++ b/drivers/net/wireless/ath/ath10k/hw.h -@@ -553,6 +553,9 @@ struct ath10k_hw_params { - - /* Number of ciphers supported (i.e First N) in cipher_suites array */ - int n_cipher_suites; -+ -+ /* Number of bytes to be the offset for each FFT sample */ -+ int spectral_bin_offset; - }; - - struct htt_rx_desc; ---- a/drivers/net/wireless/ath/ath10k/spectral.c -+++ b/drivers/net/wireless/ath/ath10k/spectral.c -@@ -145,7 +145,7 @@ int ath10k_spectral_process_fft(struct a - fft_sample->noise = __cpu_to_be16(phyerr->nf_chains[chain_idx]); - - bins = (u8 *)fftr; -- bins += sizeof(*fftr); -+ bins += sizeof(*fftr) + ar->hw_params.spectral_bin_offset; - - fft_sample->tsf = __cpu_to_be64(tsf); - |