From c34293ec4d2422f28b74ae13fdce9c5ccb2454ee Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Thu, 13 Jun 2024 21:57:20 +0000 Subject: [PATCH 1/3] linux: drop backported to stable rtlwifi patches 6.6.35 and 6.9.5 include this patches --- ...i-rtlwifi-rtl8192de-Fix-5-GHz-TX-pow.patch | 43 ----- ...i-rtlwifi-rtl8192de-Fix-low-speed-wi.patch | 83 --------- ...i-rtlwifi-rtl8192de-Fix-endianness-i.patch | 174 ------------------ 3 files changed, 300 deletions(-) delete mode 100644 packages/linux/patches/rtlwifi/6.10/0001-6.10-wifi-rtlwifi-rtl8192de-Fix-5-GHz-TX-pow.patch delete mode 100644 packages/linux/patches/rtlwifi/6.10/0002-6.10-wifi-rtlwifi-rtl8192de-Fix-low-speed-wi.patch delete mode 100644 packages/linux/patches/rtlwifi/6.10/0003-6.10-wifi-rtlwifi-rtl8192de-Fix-endianness-i.patch diff --git a/packages/linux/patches/rtlwifi/6.10/0001-6.10-wifi-rtlwifi-rtl8192de-Fix-5-GHz-TX-pow.patch b/packages/linux/patches/rtlwifi/6.10/0001-6.10-wifi-rtlwifi-rtl8192de-Fix-5-GHz-TX-pow.patch deleted file mode 100644 index fb340b4b27..0000000000 --- a/packages/linux/patches/rtlwifi/6.10/0001-6.10-wifi-rtlwifi-rtl8192de-Fix-5-GHz-TX-pow.patch +++ /dev/null @@ -1,43 +0,0 @@ -From b51a3b582d9626e5b896141c9b9edbf0d49d147d Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Thu, 25 Apr 2024 21:09:21 +0300 -Subject: [PATCH 01/07] 6.10: wifi: rtlwifi: rtl8192de: Fix 5 GHz TX - power - -Different channels have different TX power settings. rtl8192de is using -the TX power setting from the wrong channel in the 5 GHz band because -_rtl92c_phy_get_rightchnlplace expects an array which includes all the -channel numbers, but it's using an array which includes only the 5 GHz -channel numbers. - -Use the array channel_all (defined in rtl8192de/phy.c) instead of -the incorrect channel5g (defined in core.c). - -Tested only with rtl8192du, which will use the same TX power code. - -Cc: stable@vger.kernel.org -Signed-off-by: Bitterblue Smith -Signed-off-by: Ping-Ke Shih -Link: https://msgid.link/c7653517-cf88-4f57-b79a-8edb0a8b32f0@gmail.com ---- - drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c -index d835a27429f0..56b5cd032a9a 100644 ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c -@@ -892,8 +892,8 @@ static u8 _rtl92c_phy_get_rightchnlplace(u8 chnl) - u8 place = chnl; - - if (chnl > 14) { -- for (place = 14; place < ARRAY_SIZE(channel5g); place++) { -- if (channel5g[place] == chnl) { -+ for (place = 14; place < ARRAY_SIZE(channel_all); place++) { -+ if (channel_all[place] == chnl) { - place++; - break; - } --- -2.34.1 - diff --git a/packages/linux/patches/rtlwifi/6.10/0002-6.10-wifi-rtlwifi-rtl8192de-Fix-low-speed-wi.patch b/packages/linux/patches/rtlwifi/6.10/0002-6.10-wifi-rtlwifi-rtl8192de-Fix-low-speed-wi.patch deleted file mode 100644 index ae51d55cf6..0000000000 --- a/packages/linux/patches/rtlwifi/6.10/0002-6.10-wifi-rtlwifi-rtl8192de-Fix-low-speed-wi.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 93f781bf3955bd65a73ad8878c6f76439cdd4aaf Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Thu, 25 Apr 2024 21:12:38 +0300 -Subject: [PATCH 02/07] 6.10: wifi: rtlwifi: rtl8192de: Fix low speed - with WPA3-SAE - -Some (all?) management frames are incorrectly reported to mac80211 as -decrypted when actually the hardware did not decrypt them. This results -in speeds 3-5 times lower than expected, 20-30 Mbps instead of 100 -Mbps. - -Fix this by checking the encryption type field of the RX descriptor. -rtw88 does the same thing. - -This fix was tested only with rtl8192du, which will use the same code. - -Cc: stable@vger.kernel.org -Signed-off-by: Bitterblue Smith -Signed-off-by: Ping-Ke Shih -Link: https://msgid.link/4d600435-f0ea-46b0-bdb4-e60f173da8dd@gmail.com ---- - .../net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 5 ++--- - .../net/wireless/realtek/rtlwifi/rtl8192de/trx.h | 14 ++++++++++++++ - 2 files changed, 16 insertions(+), 3 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c -index 192982ec8152..30b262c3f6d0 100644 ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c -@@ -413,7 +413,8 @@ bool rtl92de_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *stats, - stats->icv = (u16)get_rx_desc_icv(pdesc); - stats->crc = (u16)get_rx_desc_crc32(pdesc); - stats->hwerror = (stats->crc | stats->icv); -- stats->decrypted = !get_rx_desc_swdec(pdesc); -+ stats->decrypted = !get_rx_desc_swdec(pdesc) && -+ get_rx_desc_enc_type(pdesc) != RX_DESC_ENC_NONE; - stats->rate = (u8)get_rx_desc_rxmcs(pdesc); - stats->shortpreamble = (u16)get_rx_desc_splcp(pdesc); - stats->isampdu = (bool)(get_rx_desc_paggr(pdesc) == 1); -@@ -426,8 +427,6 @@ bool rtl92de_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *stats, - rx_status->band = hw->conf.chandef.chan->band; - if (get_rx_desc_crc32(pdesc)) - rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; -- if (!get_rx_desc_swdec(pdesc)) -- rx_status->flag |= RX_FLAG_DECRYPTED; - if (get_rx_desc_bw(pdesc)) - rx_status->bw = RATE_INFO_BW_40; - if (get_rx_desc_rxht(pdesc)) -diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h -index 2992668c156c..f189ee2d9be2 100644 ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h -@@ -14,6 +14,15 @@ - #define USB_HWDESC_HEADER_LEN 32 - #define CRCLENGTH 4 - -+enum rtl92d_rx_desc_enc { -+ RX_DESC_ENC_NONE = 0, -+ RX_DESC_ENC_WEP40 = 1, -+ RX_DESC_ENC_TKIP_WO_MIC = 2, -+ RX_DESC_ENC_TKIP_MIC = 3, -+ RX_DESC_ENC_AES = 4, -+ RX_DESC_ENC_WEP104 = 5, -+}; -+ - /* macros to read/write various fields in RX or TX descriptors */ - - static inline void set_tx_desc_pkt_size(__le32 *__pdesc, u32 __val) -@@ -246,6 +255,11 @@ static inline u32 get_rx_desc_drv_info_size(__le32 *__pdesc) - return le32_get_bits(*__pdesc, GENMASK(19, 16)); - } - -+static inline u32 get_rx_desc_enc_type(__le32 *__pdesc) -+{ -+ return le32_get_bits(*__pdesc, GENMASK(22, 20)); -+} -+ - static inline u32 get_rx_desc_shift(__le32 *__pdesc) - { - return le32_get_bits(*__pdesc, GENMASK(25, 24)); --- -2.34.1 - diff --git a/packages/linux/patches/rtlwifi/6.10/0003-6.10-wifi-rtlwifi-rtl8192de-Fix-endianness-i.patch b/packages/linux/patches/rtlwifi/6.10/0003-6.10-wifi-rtlwifi-rtl8192de-Fix-endianness-i.patch deleted file mode 100644 index 90bde902d5..0000000000 --- a/packages/linux/patches/rtlwifi/6.10/0003-6.10-wifi-rtlwifi-rtl8192de-Fix-endianness-i.patch +++ /dev/null @@ -1,174 +0,0 @@ -From 91b01523927c0e78c0c53c0c8347ee9d194d34f0 Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Thu, 25 Apr 2024 21:13:12 +0300 -Subject: [PATCH 03/07] 6.10: wifi: rtlwifi: rtl8192de: Fix endianness - issue in RX path - -Structs rx_desc_92d and rx_fwinfo_92d will not work for big endian -systems. - -Delete rx_desc_92d because it's big and barely used, and instead use -the get_rx_desc_rxmcs and get_rx_desc_rxht functions, which work on big -endian systems too. - -Fix rx_fwinfo_92d by duplicating four of its members in the correct -order. - -Tested only with RTL8192DU, which will use the same code. -Tested only on a little endian system. - -Cc: stable@vger.kernel.org -Signed-off-by: Bitterblue Smith -Signed-off-by: Ping-Ke Shih -Link: https://msgid.link/698463da-5ef1-40c7-b744-fa51ad847caf@gmail.com ---- - .../wireless/realtek/rtlwifi/rtl8192de/trx.c | 16 ++--- - .../wireless/realtek/rtlwifi/rtl8192de/trx.h | 65 ++----------------- - 2 files changed, 15 insertions(+), 66 deletions(-) - -diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c -index 30b262c3f6d0..cbc7b4dbea9a 100644 ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c -@@ -35,7 +35,7 @@ static long _rtl92de_translate_todbm(struct ieee80211_hw *hw, - - static void _rtl92de_query_rxphystatus(struct ieee80211_hw *hw, - struct rtl_stats *pstats, -- struct rx_desc_92d *pdesc, -+ __le32 *pdesc, - struct rx_fwinfo_92d *p_drvinfo, - bool packet_match_bssid, - bool packet_toself, -@@ -50,8 +50,10 @@ static void _rtl92de_query_rxphystatus(struct ieee80211_hw *hw, - u8 i, max_spatial_stream; - u32 rssi, total_rssi = 0; - bool is_cck_rate; -+ u8 rxmcs; - -- is_cck_rate = RX_HAL_IS_CCK_RATE(pdesc->rxmcs); -+ rxmcs = get_rx_desc_rxmcs(pdesc); -+ is_cck_rate = rxmcs <= DESC_RATE11M; - pstats->packet_matchbssid = packet_match_bssid; - pstats->packet_toself = packet_toself; - pstats->packet_beacon = packet_beacon; -@@ -157,8 +159,8 @@ static void _rtl92de_query_rxphystatus(struct ieee80211_hw *hw, - pstats->rx_pwdb_all = pwdb_all; - pstats->rxpower = rx_pwr_all; - pstats->recvsignalpower = rx_pwr_all; -- if (pdesc->rxht && pdesc->rxmcs >= DESC_RATEMCS8 && -- pdesc->rxmcs <= DESC_RATEMCS15) -+ if (get_rx_desc_rxht(pdesc) && rxmcs >= DESC_RATEMCS8 && -+ rxmcs <= DESC_RATEMCS15) - max_spatial_stream = 2; - else - max_spatial_stream = 1; -@@ -364,7 +366,7 @@ static void _rtl92de_process_phyinfo(struct ieee80211_hw *hw, - static void _rtl92de_translate_rx_signal_stuff(struct ieee80211_hw *hw, - struct sk_buff *skb, - struct rtl_stats *pstats, -- struct rx_desc_92d *pdesc, -+ __le32 *pdesc, - struct rx_fwinfo_92d *p_drvinfo) - { - struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); -@@ -440,9 +442,7 @@ bool rtl92de_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *stats, - if (phystatus) { - p_drvinfo = (struct rx_fwinfo_92d *)(skb->data + - stats->rx_bufshift); -- _rtl92de_translate_rx_signal_stuff(hw, -- skb, stats, -- (struct rx_desc_92d *)pdesc, -+ _rtl92de_translate_rx_signal_stuff(hw, skb, stats, pdesc, - p_drvinfo); - } - /*rx_status->qual = stats->signal; */ -diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h -index f189ee2d9be2..2d4887490f00 100644 ---- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h -+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h -@@ -394,10 +394,17 @@ struct rx_fwinfo_92d { - u8 csi_target[2]; - u8 sigevm; - u8 max_ex_pwr; -+#ifdef __LITTLE_ENDIAN - u8 ex_intf_flag:1; - u8 sgi_en:1; - u8 rxsc:2; - u8 reserve:4; -+#else -+ u8 reserve:4; -+ u8 rxsc:2; -+ u8 sgi_en:1; -+ u8 ex_intf_flag:1; -+#endif - } __packed; - - struct tx_desc_92d { -@@ -502,64 +509,6 @@ struct tx_desc_92d { - u32 reserve_pass_pcie_mm_limit[4]; - } __packed; - --struct rx_desc_92d { -- u32 length:14; -- u32 crc32:1; -- u32 icverror:1; -- u32 drv_infosize:4; -- u32 security:3; -- u32 qos:1; -- u32 shift:2; -- u32 phystatus:1; -- u32 swdec:1; -- u32 lastseg:1; -- u32 firstseg:1; -- u32 eor:1; -- u32 own:1; -- -- u32 macid:5; -- u32 tid:4; -- u32 hwrsvd:5; -- u32 paggr:1; -- u32 faggr:1; -- u32 a1_fit:4; -- u32 a2_fit:4; -- u32 pam:1; -- u32 pwr:1; -- u32 moredata:1; -- u32 morefrag:1; -- u32 type:2; -- u32 mc:1; -- u32 bc:1; -- -- u32 seq:12; -- u32 frag:4; -- u32 nextpktlen:14; -- u32 nextind:1; -- u32 rsvd:1; -- -- u32 rxmcs:6; -- u32 rxht:1; -- u32 amsdu:1; -- u32 splcp:1; -- u32 bandwidth:1; -- u32 htc:1; -- u32 tcpchk_rpt:1; -- u32 ipcchk_rpt:1; -- u32 tcpchk_valid:1; -- u32 hwpcerr:1; -- u32 hwpcind:1; -- u32 iv0:16; -- -- u32 iv1; -- -- u32 tsfl; -- -- u32 bufferaddress; -- u32 bufferaddress64; -- --} __packed; -- - void rtl92de_tx_fill_desc(struct ieee80211_hw *hw, - struct ieee80211_hdr *hdr, u8 *pdesc, - u8 *pbd_desc_tx, struct ieee80211_tx_info *info, --- -2.34.1 - From 5e5525ab95964c2696a900de57e57b57c13ebd26 Mon Sep 17 00:00:00 2001 From: Rudi Heitbaum Date: Thu, 13 Jun 2024 21:58:46 +0000 Subject: [PATCH 2/3] linux: update to 6.9.5 --- packages/linux/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index b1273132ff..fa2a2d385d 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -30,8 +30,8 @@ case "${LINUX}" in PKG_PATCH_DIRS="raspberrypi rtlwifi/6.9 rtlwifi/6.10 rtlwifi/6.11" ;; *) - PKG_VERSION="6.9.2" - PKG_SHA256="d46c5bdf2c5961cc2a4dedefe0434d456865e95e4a7cd9f93fff054f9090e5f9" + PKG_VERSION="6.9.5" + PKG_SHA256="a51fb4ab5003a6149bd9bf4c18c9b1f0f4945c272549095ab154b9d1052f95b1" PKG_URL="https://www.kernel.org/pub/linux/kernel/v${PKG_VERSION/.*/}.x/${PKG_NAME}-${PKG_VERSION}.tar.xz" PKG_PATCH_DIRS="default rtlwifi/6.10 rtlwifi/6.11" ;; From 695670e6718a56ff994f9327ca39036f3b7685ae Mon Sep 17 00:00:00 2001 From: Matthias Reichl Date: Mon, 17 Jun 2024 13:11:26 +0200 Subject: [PATCH 3/3] linux (RPi): update to 6.6.34-f54dbdd Signed-off-by: Matthias Reichl --- packages/linux/package.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/linux/package.mk b/packages/linux/package.mk index fa2a2d385d..ded84b3206 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -23,8 +23,8 @@ case "${LINUX}" in PKG_PATCH_DIRS="default rtlwifi/6.10 rtlwifi/6.11" ;; raspberrypi) - PKG_VERSION="51c5d2bb01d3a0cff31d00686f35ed8f33039f78" # 6.6.33 - PKG_SHA256="0e2ca3b34312b1527aa9d380761af2ab1ec7754ae4481b0317fa144d4b060501" + PKG_VERSION="f54dbddefe179433c73ad6611ada5b25d452ce05" # 6.6.34 + PKG_SHA256="229cae163c76c11f85d6d952e9ac750dbf3efd312f7986d3f3f241a1f4222309" PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz" PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz" PKG_PATCH_DIRS="raspberrypi rtlwifi/6.9 rtlwifi/6.10 rtlwifi/6.11"