mac80211 adjust QCA9561 PA bias
authorThibaut VARÈNE <hacks@slashdirt.org>
Thu, 14 Apr 2022 10:39:04 +0000 (12:39 +0200)
committerPetr Štetiar <ynezz@true.cz>
Fri, 15 Apr 2022 05:11:18 +0000 (07:11 +0200)
ath9k is setting the TX PA DC bias level different on QCA9561 and QCA9565
although they have the same radio IP-core, which results in a very low
output power and very low throughput as devices are further away from
the AP (compared to other 2.4GHz APs.)

In real life testing, without this patch the 2.4GHz throughput on Yuncore
XD3200 is around 10Mbps sitting close to the AP, and close to theoretical
maximum with the patch applied.

Signed-off-by: Clemens Hopfer <openwrt@wireloss.net>
[edit commit message]
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
package/kernel/mac80211/patches/ath9k/580-ath9k_ar9561_xpa_bias_level_top.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/ath9k/580-ath9k_ar9561_xpa_bias_level_top.patch b/package/kernel/mac80211/patches/ath9k/580-ath9k_ar9561_xpa_bias_level_top.patch
new file mode 100644 (file)
index 0000000..25db3ab
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -3604,10 +3604,13 @@ static void ar9003_hw_xpa_bias_level_app
+ {
+       int bias = ar9003_modal_header(ah, is2ghz)->xpaBiasLvl;
++      
++
+       if (AR_SREV_9485(ah) || AR_SREV_9330(ah) || AR_SREV_9340(ah) ||
+-          AR_SREV_9531(ah) || AR_SREV_9561(ah))
++          AR_SREV_9531(ah))
+               REG_RMW_FIELD(ah, AR_CH0_TOP2, AR_CH0_TOP2_XPABIASLVL, bias);
+-      else if (AR_SREV_9462(ah) || AR_SREV_9550(ah) || AR_SREV_9565(ah))
++      else if (AR_SREV_9462(ah) || AR_SREV_9550(ah) || AR_SREV_9565(ah) || 
++        AR_SREV_9561(ah))
+               REG_RMW_FIELD(ah, AR_CH0_TOP, AR_CH0_TOP_XPABIASLVL, bias);
+       else {
+               REG_RMW_FIELD(ah, AR_CH0_TOP, AR_CH0_TOP_XPABIASLVL, bias);