mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Merge pull request #8943 from chewitt/amlogic-upstream
amlogic: bump kernel and misc. bits
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="brcmfmac_sdio-firmware"
|
||||
PKG_VERSION="d4382f99141ef7bc0a9a9e65ab5fa3d90e8fe968"
|
||||
PKG_SHA256="2bbe39941c97ae3713f219002e5d6d692e3d47fc167fe642be1d9f2f014d4f05"
|
||||
PKG_VERSION="88e46425ef489513c0b8bf7c2747d262367be1cc"
|
||||
PKG_SHA256="53a264536cd9531e94117f8fe2906bcb85efd201612f5f7e467bf4fbf2d6d864"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/LibreELEC/brcmfmac_sdio-firmware"
|
||||
PKG_URL="https://github.com/LibreELEC/brcmfmac_sdio-firmware/archive/${PKG_VERSION}.tar.gz"
|
||||
|
||||
@@ -16,8 +16,8 @@ PKG_PATCH_DIRS="${LINUX}"
|
||||
|
||||
case "${LINUX}" in
|
||||
amlogic)
|
||||
PKG_VERSION="e8f897f4afef0031fe618a8e94127a0934896aba" # 6.8.0
|
||||
PKG_SHA256="52608771cc42196f0a7a71a93270a27ca5f7ba1d9280fb398e521b0620a7a3ac"
|
||||
PKG_VERSION="1b4861e32e461b6fae14dc49ed0f1c7f20af5146" # 6.9.3
|
||||
PKG_SHA256="2502f1858175fc03ba38198df6b7ac62e167c9d2ee9b08b157bff66c73130e2c"
|
||||
PKG_URL="https://github.com/torvalds/linux/archive/${PKG_VERSION}.tar.gz"
|
||||
PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
|
||||
@@ -17,6 +17,8 @@ rtw88/rtw8822c_fw.bin
|
||||
rtw88/rtw8822c_wow_fw.bin
|
||||
rtl_bt/rtl8723bs_fw.bin
|
||||
rtl_bt/rtl8723bs_config-OBDA8723.bin
|
||||
rtl_bt/rtl8761bu_config.bin
|
||||
rtl_bt/rtl8761bu_fw.bin
|
||||
rtl_bt/rtl8821c_config.bin
|
||||
rtl_bt/rtl8821c_fw.bin
|
||||
rtl_bt/rtl8822cs_config.bin
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From fa91cacc8756959b9b04b2cd3d369888b9a19e82 Mon Sep 17 00:00:00 2001
|
||||
From 623a57187a4893a78bf818f7852b0c4e40936b30 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 05:41:51 +0000
|
||||
Subject: [PATCH 01/53] LOCAL: set meson-gx cma pool to 896MB
|
||||
Subject: [PATCH 01/69] LOCAL: set meson-gx cma pool to 896MB
|
||||
|
||||
This change sets the CMA pool to a larger 896MB! value for vdec use
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From db61fd1f5ac1a4b39f7699ef5583db1464f2a419 Mon Sep 17 00:00:00 2001
|
||||
From 927f228f7bff9640c8f848202401a24be426c8b7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Wed, 14 Aug 2019 19:58:14 +0000
|
||||
Subject: [PATCH 02/53] LOCAL: set meson-g12 cma pool to 896MB
|
||||
Subject: [PATCH 02/69] LOCAL: set meson-g12 cma pool to 896MB
|
||||
|
||||
This change sets the CMA pool to a larger 896MB! value for vdec use
|
||||
|
||||
@@ -11,7 +11,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
index ff68b911b729..f7f8df88d464 100644
|
||||
index 9d5eab6595d0..a960d07f9af3 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
@@ -117,7 +117,7 @@ secmon_reserved_bl32: secmon@5300000 {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From ee6ecf00c056184730623b0a09f8e1ce0adb3d24 Mon Sep 17 00:00:00 2001
|
||||
From 1cb9ad61f678caced45a9b84f19e55fb97add9d1 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 13 Apr 2019 05:45:18 +0000
|
||||
Subject: [PATCH 03/53] LOCAL: arm64: fix Kodi sysinfo CPU information
|
||||
Subject: [PATCH 03/69] LOCAL: arm64: fix Kodi sysinfo CPU information
|
||||
|
||||
This allows the CPU information to show in the Kodi sysinfo screen, e.g.
|
||||
|
||||
@@ -13,10 +13,10 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
|
||||
index 47043c0d95ec..03410a9fac77 100644
|
||||
index 09eeaa24d456..b7bf422ce536 100644
|
||||
--- a/arch/arm64/kernel/cpuinfo.c
|
||||
+++ b/arch/arm64/kernel/cpuinfo.c
|
||||
@@ -190,8 +190,7 @@ static int c_show(struct seq_file *m, void *v)
|
||||
@@ -205,8 +205,7 @@ static int c_show(struct seq_file *m, void *v)
|
||||
* "processor". Give glibc what it expects.
|
||||
*/
|
||||
seq_printf(m, "processor\t: %d\n", i);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 18375f3ce86dcec9a07f711b696aefb6fcb79829 Mon Sep 17 00:00:00 2001
|
||||
From bd0e5a715d103bb88d73ae280655a849f7762ecc Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Thu, 3 Nov 2016 15:29:23 +0100
|
||||
Subject: [PATCH 04/53] LOCAL: arm64: meson: add Amlogic Meson GX PM Suspend
|
||||
Subject: [PATCH 04/69] LOCAL: arm64: meson: add Amlogic Meson GX PM Suspend
|
||||
|
||||
The Amlogic Meson GX SoCs uses a non-standard argument to the
|
||||
PSCI CPU_SUSPEND call to enter system suspend.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 346f8f56697d21901ca2c5d48c7beecc654131c0 Mon Sep 17 00:00:00 2001
|
||||
From 2e207659c996f765749e32d3ff932ab673965b42 Mon Sep 17 00:00:00 2001
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Thu, 3 Nov 2016 15:29:25 +0100
|
||||
Subject: [PATCH 05/53] LOCAL: arm64: dts: meson: add support for GX PM and
|
||||
Subject: [PATCH 05/69] LOCAL: arm64: dts: meson: add support for GX PM and
|
||||
Virtual RTC
|
||||
|
||||
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From e288d4c79fb45f1af148b279bcfd091f770e9070 Mon Sep 17 00:00:00 2001
|
||||
From 4c9bfede767b2c1e1ff43eda7fbb2b9b7d938761 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 21 Jan 2021 01:35:36 +0000
|
||||
Subject: [PATCH 06/53] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to
|
||||
Subject: [PATCH 06/69] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to
|
||||
Khadas VIM
|
||||
|
||||
Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 1ebc6f1a726d896fb8c72ed5e86423ad2485eea1 Mon Sep 17 00:00:00 2001
|
||||
From 36f210099326720a267df7108ef0ea7fb9ae88a7 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Sat, 6 Nov 2021 13:01:08 +0000
|
||||
Subject: [PATCH 07/53] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to
|
||||
Subject: [PATCH 07/69] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to
|
||||
Khadas VIM2
|
||||
|
||||
Add aliases to ensure the vrtc time (which normally proves first) is /dev/rtc1
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
index 860f307494c5..cee27e7222c8 100644
|
||||
index 07e7c3bedea0..a03269a00486 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
|
||||
@@ -18,6 +18,8 @@ / {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 83e3e72c22bd9261d248c2dda723d5fb3abd4ab9 Mon Sep 17 00:00:00 2001
|
||||
From 2ca029008c662f81a80a7e694229d1950efe0d9a Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Mon, 1 Feb 2021 19:27:40 +0000
|
||||
Subject: [PATCH 08/53] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Minix
|
||||
Subject: [PATCH 08/69] LOCAL: arm64: dts: meson: add rtc/vrtc aliases to Minix
|
||||
NEO U9-H
|
||||
|
||||
Add node aliases to prevent meson-vrtc from claiming /dev/rtc0
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From b419174ce9cd28aa55673140319aa4317922d0d7 Mon Sep 17 00:00:00 2001
|
||||
From 465c8694439773f00bc9088e41354e6d348366ab Mon Sep 17 00:00:00 2001
|
||||
From: Anssi Hannula <anssi.hannula@iki.fi>
|
||||
Date: Sun, 17 Apr 2022 04:37:48 +0000
|
||||
Subject: [PATCH 09/53] LOCAL: ASoC: meson: assign internal PCM
|
||||
Subject: [PATCH 09/69] LOCAL: ASoC: meson: assign internal PCM
|
||||
chmap/ELD/IEC958 kctls to device 0
|
||||
|
||||
On SoC sound devices utilizing codec2codec DAI links with an HDMI codec the kctls
|
||||
@@ -24,10 +24,10 @@ Tested-by: Christian Hewitt <christianshewitt@gmail.com>
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
|
||||
index 41103e5c43ce..0db7fe63911e 100644
|
||||
index 6f73b3c2c205..4653351cc4b9 100644
|
||||
--- a/sound/core/pcm_lib.c
|
||||
+++ b/sound/core/pcm_lib.c
|
||||
@@ -2581,7 +2581,10 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream,
|
||||
@@ -2577,7 +2577,10 @@ int snd_pcm_add_chmap_ctls(struct snd_pcm *pcm, int stream,
|
||||
knew.name = "Playback Channel Map";
|
||||
else
|
||||
knew.name = "Capture Channel Map";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From 9787871fe1e00af9f915237be4474a3b1f1e0887 Mon Sep 17 00:00:00 2001
|
||||
From 1bdbf76d2a7e0c715469d3bc67f71f8c41c323f1 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Hewitt <christianshewitt@gmail.com>
|
||||
Date: Thu, 5 Jan 2023 15:16:46 +0000
|
||||
Subject: [PATCH 10/53] LOCAL: media: meson: vdec: disable MPEG1/MPEG2 hardware
|
||||
Subject: [PATCH 10/69] LOCAL: media: meson: vdec: disable MPEG1/MPEG2 hardware
|
||||
decoding
|
||||
|
||||
The MPEG1/2 decoder is broken and nobody has volunteered to poke
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From b51a3b582d9626e5b896141c9b9edbf0d49d147d Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Thu, 25 Apr 2024 21:09:21 +0300
|
||||
Subject: [PATCH 11/69] FROMGIT(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 <rtl8821cerfe2@gmail.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
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
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From f376bb7ba1afbca87fba7b98f31697cba6776b1b Mon Sep 17 00:00:00 2001
|
||||
From: Tomeu Vizoso <tomeu@tomeuvizoso.net>
|
||||
Date: Mon, 16 Oct 2023 10:02:03 +0200
|
||||
Subject: [PATCH 11/53] FROMGIT(6.9): arm64: dts: meson-g12-common: Set the
|
||||
rates of the clocks for the NPU
|
||||
|
||||
Otherwise they are left at 24MHz and the NPU runs very slowly.
|
||||
|
||||
Signed-off-by: Tomeu Vizoso <tomeu@tomeuvizoso.net>
|
||||
Suggested-by: Lucas Stach <l.stach@pengutronix.de>
|
||||
---
|
||||
arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
index f7f8df88d464..a960d07f9af3 100644
|
||||
--- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
+++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi
|
||||
@@ -2502,6 +2502,9 @@ npu: npu@ff100000 {
|
||||
clocks = <&clkc CLKID_NNA_CORE_CLK>,
|
||||
<&clkc CLKID_NNA_AXI_CLK>;
|
||||
clock-names = "core", "bus";
|
||||
+ assigned-clocks = <&clkc CLKID_NNA_CORE_CLK>,
|
||||
+ <&clkc CLKID_NNA_AXI_CLK>;
|
||||
+ assigned-clock-rates = <800000000>, <800000000>;
|
||||
resets = <&reset RESET_NNA>;
|
||||
status = "disabled";
|
||||
};
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
From 93f781bf3955bd65a73ad8878c6f76439cdd4aaf Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Thu, 25 Apr 2024 21:12:38 +0300
|
||||
Subject: [PATCH 12/69] FROMGIT(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 <rtl8821cerfe2@gmail.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,174 @@
|
||||
From 91b01523927c0e78c0c53c0c8347ee9d194d34f0 Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Thu, 25 Apr 2024 21:13:12 +0300
|
||||
Subject: [PATCH 13/69] FROMGIT(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 <rtl8821cerfe2@gmail.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user