From: Greg Kroah-Hartman Date: Tue, 18 Oct 2022 12:15:00 +0000 (+0200) Subject: drop queue-6.0/wifi-rtw88-8822c-extend-supported-probe-request-size.patch X-Git-Tag: v6.0.3~72 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=34b68983d9be435f4d8448ca5a5ea3d825401392;p=thirdparty%2Fkernel%2Fstable-queue.git drop queue-6.0/wifi-rtw88-8822c-extend-supported-probe-request-size.patch not needed. --- diff --git a/queue-6.0/series b/queue-6.0/series index 5ac7ba55d2b..8249d04a2b0 100644 --- a/queue-6.0/series +++ b/queue-6.0/series @@ -226,7 +226,6 @@ nfsd-fix-handling-of-oversized-nfsv4-compound-reques.patch x86-paravirt-add-extra-clobbers-with-zero_call_used_.patch m68k-process-bootinfo-records-before-saving-them.patch libbpf-initialize-err-in-probe_map_create.patch -wifi-rtw88-8822c-extend-supported-probe-request-size.patch wifi-rtlwifi-8192de-correct-checking-of-iqk-reload.patch wifi-ath10k-set-tx-credit-to-one-for-wcn3990-snoc-ba.patch wifi-ath10k-add-peer-map-clean-up-for-peer-delete-in.patch diff --git a/queue-6.0/wifi-rtw88-8822c-extend-supported-probe-request-size.patch b/queue-6.0/wifi-rtw88-8822c-extend-supported-probe-request-size.patch deleted file mode 100644 index 44f6a154d85..00000000000 --- a/queue-6.0/wifi-rtw88-8822c-extend-supported-probe-request-size.patch +++ /dev/null @@ -1,298 +0,0 @@ -From 76796c3a455019ab150b83d9eddbbc1a48611759 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 27 Jul 2022 14:50:00 +0800 -Subject: wifi: rtw88: 8822c: extend supported probe request size - -From: Po-Hao Huang - -[ Upstream commit d2eb7cb97c7df25df3e3e0f590b5bbf00c66d4c9 ] - -Some WSC IEs require size larger than we current supports. Extend size -to fit those demands. Separate the registered scan IE length by IC so -settings can be independent. - -Since old firmware uses fewer page number, define a firmware feature to -be compatible with various firmware version. - -Signed-off-by: Po-Hao Huang -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20220727065003.28340-2-pkshih@realtek.com -Stable-dep-of: 93fbc1ebd978 ("wifi: rtlwifi: 8192de: correct checking of IQK reload") -Signed-off-by: Sasha Levin ---- - drivers/net/wireless/realtek/rtw88/fw.c | 15 +++++++++---- - drivers/net/wireless/realtek/rtw88/fw.h | 18 +++++++++++++++- - drivers/net/wireless/realtek/rtw88/main.c | 21 ++++++++++++++++++- - drivers/net/wireless/realtek/rtw88/main.h | 4 +++- - drivers/net/wireless/realtek/rtw88/rtw8723d.c | 3 ++- - drivers/net/wireless/realtek/rtw88/rtw8821c.c | 3 ++- - drivers/net/wireless/realtek/rtw88/rtw8822b.c | 3 ++- - drivers/net/wireless/realtek/rtw88/rtw8822c.c | 3 ++- - 8 files changed, 59 insertions(+), 11 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtw88/fw.c b/drivers/net/wireless/realtek/rtw88/fw.c -index 4fdab0329695..efa51b2f5302 100644 ---- a/drivers/net/wireless/realtek/rtw88/fw.c -+++ b/drivers/net/wireless/realtek/rtw88/fw.c -@@ -1844,13 +1844,20 @@ static int _rtw_hw_scan_update_probe_req(struct rtw_dev *rtwdev, u8 num_probes, - struct rtw_chip_info *chip = rtwdev->chip; - struct sk_buff *skb, *tmp; - u8 page_offset = 1, *buf, page_size = chip->page_size; -- u8 pages = page_offset + num_probes * RTW_PROBE_PG_CNT; - u16 pg_addr = rtwdev->fifo.rsvd_h2c_info_addr, loc; - u16 buf_offset = page_size * page_offset; - u8 tx_desc_sz = chip->tx_pkt_desc_sz; -+ u8 page_cnt, pages; - unsigned int pkt_len; - int ret; - -+ if (rtw_fw_feature_ext_check(&rtwdev->fw, FW_FEATURE_EXT_OLD_PAGE_NUM)) -+ page_cnt = RTW_OLD_PROBE_PG_CNT; -+ else -+ page_cnt = RTW_PROBE_PG_CNT; -+ -+ pages = page_offset + num_probes * page_cnt; -+ - buf = kzalloc(page_size * pages, GFP_KERNEL); - if (!buf) - return -ENOMEM; -@@ -1859,7 +1866,7 @@ static int _rtw_hw_scan_update_probe_req(struct rtw_dev *rtwdev, u8 num_probes, - skb_queue_walk_safe(probe_req_list, skb, tmp) { - skb_unlink(skb, probe_req_list); - rtw_fill_rsvd_page_desc(rtwdev, skb, RSVD_PROBE_REQ); -- if (skb->len > page_size * RTW_PROBE_PG_CNT) { -+ if (skb->len > page_size * page_cnt) { - ret = -EINVAL; - goto out; - } -@@ -1869,8 +1876,8 @@ static int _rtw_hw_scan_update_probe_req(struct rtw_dev *rtwdev, u8 num_probes, - loc = pg_addr - rtwdev->fifo.rsvd_boundary + page_offset; - __rtw_fw_update_pkt(rtwdev, RTW_PACKET_PROBE_REQ, pkt_len, loc); - -- buf_offset += RTW_PROBE_PG_CNT * page_size; -- page_offset += RTW_PROBE_PG_CNT; -+ buf_offset += page_cnt * page_size; -+ page_offset += page_cnt; - kfree_skb(skb); - } - -diff --git a/drivers/net/wireless/realtek/rtw88/fw.h b/drivers/net/wireless/realtek/rtw88/fw.h -index 7a37675c61e8..bd3b9318b243 100644 ---- a/drivers/net/wireless/realtek/rtw88/fw.h -+++ b/drivers/net/wireless/realtek/rtw88/fw.h -@@ -41,7 +41,8 @@ - #define RTW_EX_CH_INFO_HDR_SIZE 2 - #define RTW_SCAN_WIDTH 0 - #define RTW_PRI_CH_IDX 1 --#define RTW_PROBE_PG_CNT 2 -+#define RTW_OLD_PROBE_PG_CNT 2 -+#define RTW_PROBE_PG_CNT 4 - - enum rtw_c2h_cmd_id { - C2H_CCX_TX_RPT = 0x03, -@@ -120,6 +121,10 @@ enum rtw_fw_feature { - FW_FEATURE_MAX = BIT(31), - }; - -+enum rtw_fw_feature_ext { -+ FW_FEATURE_EXT_OLD_PAGE_NUM = BIT(0), -+}; -+ - enum rtw_beacon_filter_offload_mode { - BCN_FILTER_OFFLOAD_MODE_0 = 0, - BCN_FILTER_OFFLOAD_MODE_1, -@@ -323,6 +328,11 @@ struct rtw_fw_hdr_legacy { - __le32 rsvd5; - } __packed; - -+#define RTW_FW_VER_CODE(ver, sub_ver, idx) \ -+ (((ver) << 16) | ((sub_ver) << 8) | (idx)) -+#define RTW_FW_SUIT_VER_CODE(s) \ -+ RTW_FW_VER_CODE((s).version, (s).sub_version, (s).sub_index) -+ - /* C2H */ - #define GET_CCX_REPORT_SEQNUM_V0(c2h_payload) (c2h_payload[6] & 0xfc) - #define GET_CCX_REPORT_STATUS_V0(c2h_payload) (c2h_payload[0] & 0xc0) -@@ -770,6 +780,12 @@ static inline bool rtw_fw_feature_check(struct rtw_fw_state *fw, - return !!(fw->feature & feature); - } - -+static inline bool rtw_fw_feature_ext_check(struct rtw_fw_state *fw, -+ enum rtw_fw_feature_ext feature) -+{ -+ return !!(fw->feature_ext & feature); -+} -+ - void rtw_fw_c2h_cmd_rx_irqsafe(struct rtw_dev *rtwdev, u32 pkt_offset, - struct sk_buff *skb); - void rtw_fw_c2h_cmd_handle(struct rtw_dev *rtwdev, struct sk_buff *skb); -diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c -index 76dc9da88f6c..41458dff5422 100644 ---- a/drivers/net/wireless/realtek/rtw88/main.c -+++ b/drivers/net/wireless/realtek/rtw88/main.c -@@ -1552,6 +1552,21 @@ static void rtw_init_vht_cap(struct rtw_dev *rtwdev, - vht_cap->vht_mcs.tx_highest = highest; - } - -+static u16 rtw_get_max_scan_ie_len(struct rtw_dev *rtwdev) -+{ -+ u16 len; -+ -+ len = rtwdev->chip->max_scan_ie_len; -+ -+ if (!rtw_fw_feature_check(&rtwdev->fw, FW_FEATURE_SCAN_OFFLOAD) && -+ rtwdev->chip->id == RTW_CHIP_TYPE_8822C) -+ len = IEEE80211_MAX_DATA_LEN; -+ else if (rtw_fw_feature_ext_check(&rtwdev->fw, FW_FEATURE_EXT_OLD_PAGE_NUM)) -+ len -= RTW_OLD_PROBE_PG_CNT * TX_PAGE_SIZE; -+ -+ return len; -+} -+ - static void rtw_set_supported_band(struct ieee80211_hw *hw, - struct rtw_chip_info *chip) - { -@@ -1631,6 +1646,10 @@ static void __update_firmware_feature(struct rtw_dev *rtwdev, - - feature = le32_to_cpu(fw_hdr->feature); - fw->feature = feature & FW_FEATURE_SIG ? feature : 0; -+ -+ if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C && -+ RTW_FW_SUIT_VER_CODE(rtwdev->fw) < RTW_FW_VER_CODE(9, 9, 13)) -+ fw->feature_ext |= FW_FEATURE_EXT_OLD_PAGE_NUM; - } - - static void __update_firmware_info(struct rtw_dev *rtwdev, -@@ -2136,7 +2155,7 @@ int rtw_register_hw(struct rtw_dev *rtwdev, struct ieee80211_hw *hw) - - hw->wiphy->features |= NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR; - hw->wiphy->max_scan_ssids = RTW_SCAN_MAX_SSIDS; -- hw->wiphy->max_scan_ie_len = RTW_SCAN_MAX_IE_LEN; -+ hw->wiphy->max_scan_ie_len = rtw_get_max_scan_ie_len(rtwdev); - - wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0); - wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_SCAN_RANDOM_SN); -diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h -index 7db627fc26be..69d0a700c2ae 100644 ---- a/drivers/net/wireless/realtek/rtw88/main.h -+++ b/drivers/net/wireless/realtek/rtw88/main.h -@@ -22,7 +22,6 @@ - #define MAX_PG_CAM_BACKUP_NUM 8 - - #define RTW_SCAN_MAX_SSIDS 4 --#define RTW_SCAN_MAX_IE_LEN 128 - - #define RTW_MAX_PATTERN_NUM 12 - #define RTW_MAX_PATTERN_MASK_SIZE 16 -@@ -33,6 +32,7 @@ - #define RFREG_MASK 0xfffff - #define INV_RF_DATA 0xffffffff - #define TX_PAGE_SIZE_SHIFT 7 -+#define TX_PAGE_SIZE (1 << TX_PAGE_SIZE_SHIFT) - - #define RTW_CHANNEL_WIDTH_MAX 3 - #define RTW_RF_PATH_MAX 4 -@@ -1232,6 +1232,7 @@ struct rtw_chip_info { - const char *wow_fw_name; - const struct wiphy_wowlan_support *wowlan_stub; - const u8 max_sched_scan_ssids; -+ const u16 max_scan_ie_len; - - /* coex paras */ - u32 coex_para_ver; -@@ -1853,6 +1854,7 @@ struct rtw_fw_state { - u8 sub_index; - u16 h2c_version; - u32 feature; -+ u32 feature_ext; - }; - - enum rtw_sar_sources { -diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723d.c b/drivers/net/wireless/realtek/rtw88/rtw8723d.c -index 993bd6b1d723..0a4f770fcbb7 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8723d.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8723d.c -@@ -2720,7 +2720,7 @@ const struct rtw_chip_info rtw8723d_hw_spec = { - .max_power_index = 0x3f, - .csi_buf_pg_num = 0, - .band = RTW_BAND_2G, -- .page_size = 128, -+ .page_size = TX_PAGE_SIZE, - .dig_min = 0x20, - .ht_supported = true, - .vht_supported = false, -@@ -2748,6 +2748,7 @@ const struct rtw_chip_info rtw8723d_hw_spec = { - .pwr_track_tbl = &rtw8723d_rtw_pwr_track_tbl, - .iqk_threshold = 8, - .ampdu_density = IEEE80211_HT_MPDU_DENSITY_16, -+ .max_scan_ie_len = IEEE80211_MAX_DATA_LEN, - - .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 025262a8970e..9afdc5ce86b4 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8821c.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8821c.c -@@ -1898,7 +1898,7 @@ const struct rtw_chip_info rtw8821c_hw_spec = { - .max_power_index = 0x3f, - .csi_buf_pg_num = 0, - .band = RTW_BAND_2G | RTW_BAND_5G, -- .page_size = 128, -+ .page_size = TX_PAGE_SIZE, - .dig_min = 0x1c, - .ht_supported = true, - .vht_supported = true, -@@ -1926,6 +1926,7 @@ const struct rtw_chip_info rtw8821c_hw_spec = { - .bfer_su_max_num = 2, - .bfer_mu_max_num = 1, - .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2, -+ .max_scan_ie_len = IEEE80211_MAX_DATA_LEN, - - .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 321848870561..690e35c98f6e 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8822b.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8822b.c -@@ -2517,7 +2517,7 @@ const struct rtw_chip_info rtw8822b_hw_spec = { - .max_power_index = 0x3f, - .csi_buf_pg_num = 0, - .band = RTW_BAND_2G | RTW_BAND_5G, -- .page_size = 128, -+ .page_size = TX_PAGE_SIZE, - .dig_min = 0x1c, - .ht_supported = true, - .vht_supported = true, -@@ -2549,6 +2549,7 @@ const struct rtw_chip_info rtw8822b_hw_spec = { - .l2h_th_ini_cs = 10 + EDCCA_IGI_BASE, - .l2h_th_ini_ad = -14 + EDCCA_IGI_BASE, - .ampdu_density = IEEE80211_HT_MPDU_DENSITY_2, -+ .max_scan_ie_len = IEEE80211_MAX_DATA_LEN, - - .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 09f9e4adcf34..fccb15dfb959 100644 ---- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c -+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c -@@ -5330,7 +5330,7 @@ const struct rtw_chip_info rtw8822c_hw_spec = { - .max_power_index = 0x7f, - .csi_buf_pg_num = 50, - .band = RTW_BAND_2G | RTW_BAND_5G, -- .page_size = 128, -+ .page_size = TX_PAGE_SIZE, - .dig_min = 0x20, - .default_1ss_tx_path = BB_PATH_A, - .path_div_supported = true, -@@ -5375,6 +5375,7 @@ const struct rtw_chip_info rtw8822c_hw_spec = { - .wowlan_stub = &rtw_wowlan_stub_8822c, - .max_sched_scan_ssids = 4, - #endif -+ .max_scan_ie_len = (RTW_PROBE_PG_CNT - 1) * TX_PAGE_SIZE, - .coex_para_ver = 0x22020720, - .bt_desired_ver = 0x20, - .scbd_support = true, --- -2.35.1 -