sunxi-5.17: tag: orange-pi-5.17-20220510-1956: add patches (#3809)
This commit is contained in:
parent
98c13e2976
commit
4145e3fb29
@ -0,0 +1,103 @@
|
||||
From 838edc97262a0b6f741f465f982c6cfb9ec78d5d Mon Sep 17 00:00:00 2001
|
||||
From: Chih-Kang Chang <gary.chang@realtek.com>
|
||||
Date: Thu, 28 Apr 2022 10:05:19 +0800
|
||||
Subject: [PATCH 581/582] rtw88: add HT MPDU density value for each chip
|
||||
|
||||
Each chip have best ampdu density value, the correct setting can improve
|
||||
throughput performance.
|
||||
|
||||
Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/main.c | 3 ++-
|
||||
drivers/net/wireless/realtek/rtw88/main.h | 1 +
|
||||
drivers/net/wireless/realtek/rtw88/rtw8723d.c | 1 +
|
||||
drivers/net/wireless/realtek/rtw88/rtw8821c.c | 1 +
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822b.c | 1 +
|
||||
drivers/net/wireless/realtek/rtw88/rtw8822c.c | 1 +
|
||||
6 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
|
||||
index 8fb102cb04c3..6953884f063d 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/main.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/main.c
|
||||
@@ -1461,6 +1461,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
|
||||
struct ieee80211_sta_ht_cap *ht_cap)
|
||||
{
|
||||
struct rtw_efuse *efuse = &rtwdev->efuse;
|
||||
+ struct rtw_chip_info *chip = rtwdev->chip;
|
||||
|
||||
ht_cap->ht_supported = true;
|
||||
ht_cap->cap = 0;
|
||||
@@ -1478,7 +1479,7 @@ static void rtw_init_ht_cap(struct rtw_dev *rtwdev,
|
||||
IEEE80211_HT_CAP_DSSSCCK40 |
|
||||
IEEE80211_HT_CAP_SGI_40;
|
||||
ht_cap->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
|
||||
- ht_cap->ampdu_density = IEEE80211_HT_MPDU_DENSITY_16;
|
||||
+ ht_cap->ampdu_density = chip->ampdu_density;
|
||||
ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED;
|
||||
if (efuse->hw_cap.nss > 1) {
|
||||
ht_cap->mcs.rx_mask[0] = 0xFF;
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h
|
||||
index 2743074a4256..de149a3b3ba1 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/main.h
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/main.h
|
||||
@@ -1179,6 +1179,7 @@ struct rtw_chip_info {
|
||||
bool rx_ldpc;
|
||||
bool tx_stbc;
|
||||
u8 max_power_index;
|
||||
+ u8 ampdu_density;
|
||||
|
||||
u16 fw_fifo_addr[RTW_FW_FIFO_MAX];
|
||||
const struct rtw_fwcd_segs *fwcd_segs;
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
index ad2b323a0423..93cce44df531 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c
|
||||
@@ -2747,6 +2747,7 @@ struct rtw_chip_info rtw8723d_hw_spec = {
|
||||
.rx_ldpc = false,
|
||||
.pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl,
|
||||
.iqk_threshold = 8,
|
||||
+ .ampdu_density = IEEE80211_HT_MPDU_DENSITY_16,
|
||||
|
||||
.coex_para_ver = 0x2007022f,
|
||||
.bt_desired_ver = 0x2f,
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8821c.c b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
index ec38a7c84951..ffee39ea5df6 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c
|
||||
@@ -1923,6 +1923,7 @@ struct rtw_chip_info rtw8821c_hw_spec = {
|
||||
.iqk_threshold = 8,
|
||||
.bfer_su_max_num = 2,
|
||||
.bfer_mu_max_num = 1,
|
||||
+ .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
|
||||
|
||||
.coex_para_ver = 0x19092746,
|
||||
.bt_desired_ver = 0x46,
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822b.c b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
index eee7bf035403..dccd722b8e62 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c
|
||||
@@ -2548,6 +2548,7 @@ struct rtw_chip_info rtw8822b_hw_spec = {
|
||||
.edcca_th = rtw8822b_edcca_th,
|
||||
.l2h_th_ini_cs = 10 + EDCCA_IGI_BASE,
|
||||
.l2h_th_ini_ad = -14 + EDCCA_IGI_BASE,
|
||||
+ .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
|
||||
|
||||
.coex_para_ver = 0x20070206,
|
||||
.bt_desired_ver = 0x6,
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
index cd74607a61a2..c043b5c520b9 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
|
||||
@@ -5368,6 +5368,7 @@ struct rtw_chip_info rtw8822c_hw_spec = {
|
||||
.edcca_th = rtw8822c_edcca_th,
|
||||
.l2h_th_ini_cs = 60,
|
||||
.l2h_th_ini_ad = 45,
|
||||
+ .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2,
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
.wow_fw_name = "rtw88/rtw8822c_wow_fw.bin",
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@ -0,0 +1,63 @@
|
||||
From 40772d72c76bf9696d0fc472d4e8281f0dcac367 Mon Sep 17 00:00:00 2001
|
||||
From: Chih-Kang Chang <gary.chang@realtek.com>
|
||||
Date: Thu, 28 Apr 2022 10:05:21 +0800
|
||||
Subject: [PATCH 579/582] rtw88: fix hw scan may cause disconnect issue
|
||||
|
||||
After scan aborts we still receive some hw scan c2h packets, and
|
||||
processing these c2h commands will change current channel. If device
|
||||
already connect to other AP, driver will set wrong op channel due
|
||||
to current channel changed. The disconnection happens when hw scan back
|
||||
to wrong op channel that device can't receive beacon from AP. To fix
|
||||
this issue, we ignore the late c2h if we are not scanning, and set
|
||||
current channel back to op channel after scan to align the FW behavior.
|
||||
|
||||
Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/fw.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c
|
||||
index c1af2704bb86..bab6351680b5 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/fw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/fw.c
|
||||
@@ -2052,7 +2052,10 @@ void rtw_hw_scan_complete(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
struct cfg80211_scan_info info = {
|
||||
.aborted = aborted,
|
||||
};
|
||||
+ struct rtw_hw_scan_info *scan_info = &rtwdev->scan_info;
|
||||
+ struct rtw_hal *hal = &rtwdev->hal;
|
||||
struct rtw_vif *rtwvif;
|
||||
+ u8 chan = scan_info->op_chan;
|
||||
|
||||
if (!vif)
|
||||
return;
|
||||
@@ -2062,10 +2065,14 @@ void rtw_hw_scan_complete(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
|
||||
rtw_core_scan_complete(rtwdev, vif, true);
|
||||
|
||||
+ rtwvif = (struct rtw_vif *)vif->drv_priv;
|
||||
+ if (rtwvif->net_type == RTW_NET_MGD_LINKED) {
|
||||
+ hal->current_channel = chan;
|
||||
+ hal->current_band_type = chan > 14 ? RTW_BAND_5G : RTW_BAND_2G;
|
||||
+ }
|
||||
ieee80211_wake_queues(rtwdev->hw);
|
||||
ieee80211_scan_completed(rtwdev->hw, &info);
|
||||
|
||||
- rtwvif = (struct rtw_vif *)vif->drv_priv;
|
||||
rtwvif->scan_req = NULL;
|
||||
rtwvif->scan_ies = NULL;
|
||||
rtwdev->scan_info.scanning_vif = NULL;
|
||||
@@ -2174,6 +2181,9 @@ void rtw_hw_scan_chan_switch(struct rtw_dev *rtwdev, struct sk_buff *skb)
|
||||
enum rtw_scan_notify_id id;
|
||||
u8 chan, status;
|
||||
|
||||
+ if (!test_bit(RTW_FLAG_SCANNING, rtwdev->flags))
|
||||
+ return;
|
||||
+
|
||||
c2h = get_c2h_from_skb(skb);
|
||||
chan = GET_CHAN_SWITCH_CENTRAL_CH(c2h->payload);
|
||||
id = GET_CHAN_SWITCH_ID(c2h->payload);
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@ -0,0 +1,41 @@
|
||||
From ee7b3237dfe58c8a91b59c2423df41c7a8dda97c Mon Sep 17 00:00:00 2001
|
||||
From: Chih-Kang Chang <gary.chang@realtek.com>
|
||||
Date: Thu, 28 Apr 2022 10:05:20 +0800
|
||||
Subject: [PATCH 580/582] rtw88: fix not disabling beacon filter after
|
||||
disconnection
|
||||
|
||||
Correct the judgment to let beacon filter disable after disconnection.
|
||||
|
||||
Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/fw.c | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c
|
||||
index bab6351680b5..4895941abedb 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/fw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/fw.c
|
||||
@@ -649,7 +649,7 @@ void rtw_fw_beacon_filter_config(struct rtw_dev *rtwdev, bool connect,
|
||||
s32 threshold = bss_conf->cqm_rssi_thold + rssi_offset;
|
||||
u8 h2c_pkt[H2C_PKT_SIZE] = {0};
|
||||
|
||||
- if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_BCN_FILTER) || !si)
|
||||
+ if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_BCN_FILTER))
|
||||
return;
|
||||
|
||||
if (!connect) {
|
||||
@@ -659,6 +659,10 @@ void rtw_fw_beacon_filter_config(struct rtw_dev *rtwdev, bool connect,
|
||||
|
||||
return;
|
||||
}
|
||||
+
|
||||
+ if (!si)
|
||||
+ return;
|
||||
+
|
||||
SET_H2C_CMD_ID_CLASS(h2c_pkt, H2C_CMD_BCN_FILTER_OFFLOAD_P0);
|
||||
ether_addr_copy(&h2c_pkt[1], bss_conf->bssid);
|
||||
rtw_fw_send_h2c_command(rtwdev, h2c_pkt);
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
From c85a43eab6fe5e075919825ac48486fa15ff69c7 Mon Sep 17 00:00:00 2001
|
||||
From: Kevin Lo <kevlo@kevlo.org>
|
||||
Date: Fri, 22 Apr 2022 22:50:54 +0800
|
||||
Subject: [PATCH 582/582] rtw88: use the correct bit in the REG_HCI_OPT_CTRL
|
||||
register
|
||||
|
||||
Write the BIT_USB_SUS_DIS bit rather than BIT_BT_DIG_CLK_EN to the
|
||||
REG_HCI_OPT_CTRL register for fixing failure to PCIe power on.
|
||||
|
||||
Signed-off-by: Kevin Lo <kevlo@kevlo.org>
|
||||
---
|
||||
drivers/net/wireless/realtek/rtw88/mac.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtw88/mac.c b/drivers/net/wireless/realtek/rtw88/mac.c
|
||||
index d1678aed9d9c..caf2603da2d6 100644
|
||||
--- a/drivers/net/wireless/realtek/rtw88/mac.c
|
||||
+++ b/drivers/net/wireless/realtek/rtw88/mac.c
|
||||
@@ -75,7 +75,7 @@ static int rtw_mac_pre_system_cfg(struct rtw_dev *rtwdev)
|
||||
|
||||
switch (rtw_hci_type(rtwdev)) {
|
||||
case RTW_HCI_TYPE_PCIE:
|
||||
- rtw_write32_set(rtwdev, REG_HCI_OPT_CTRL, BIT_BT_DIG_CLK_EN);
|
||||
+ rtw_write32_set(rtwdev, REG_HCI_OPT_CTRL, BIT_USB_SUS_DIS);
|
||||
break;
|
||||
case RTW_HCI_TYPE_USB:
|
||||
break;
|
||||
--
|
||||
2.35.3
|
||||
|
||||
@ -578,6 +578,11 @@
|
||||
# tag: orange-pi-5.17-20220424-2152
|
||||
patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch
|
||||
# tag: orange-pi-5.17-20220427-0710
|
||||
patches.megous/rtw88-fix-hw-scan-may-cause-disconnect-issue.patch
|
||||
patches.megous/rtw88-fix-not-disabling-beacon-filter-after-disconnection.patch
|
||||
patches.megous/rtw88-add-HT-MPDU-density-value-for-each-chip.patch
|
||||
patches.megous/rtw88-use-the-correct-bit-in-the-REG_HCI_OPT_CTRL-register.patch
|
||||
# tag: orange-pi-5.17-20220510-1956
|
||||
############################################################################
|
||||
#
|
||||
# Armbian patches
|
||||
|
||||
@ -578,3 +578,8 @@
|
||||
# tag: orange-pi-5.17-20220424-2152
|
||||
patches.megous/usb-musb-sunxi-Avoid-enabling-host-side-code-on-SoCs.patch
|
||||
# tag: orange-pi-5.17-20220427-0710
|
||||
patches.megous/rtw88-fix-hw-scan-may-cause-disconnect-issue.patch
|
||||
patches.megous/rtw88-fix-not-disabling-beacon-filter-after-disconnection.patch
|
||||
patches.megous/rtw88-add-HT-MPDU-density-value-for-each-chip.patch
|
||||
patches.megous/rtw88-use-the-correct-bit-in-the-REG_HCI_OPT_CTRL-register.patch
|
||||
# tag: orange-pi-5.17-20220510-1956
|
||||
|
||||
Loading…
Reference in New Issue
Block a user