mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
linux (RPi): backport rtlwifi patches to support new RTL8192DU inkernel driver
This commit is contained in:
parent
d8d60385cb
commit
9d6ba74438
142
packages/linux/patches/rtlwifi/6.9/0001-wifi-rtlwifi-cleanup-few-rtlxxxx_set_hw_reg-routines.patch
vendored
Normal file
142
packages/linux/patches/rtlwifi/6.9/0001-wifi-rtlwifi-cleanup-few-rtlxxxx_set_hw_reg-routines.patch
vendored
Normal file
@ -0,0 +1,142 @@
|
||||
From 624934a7cfabca7dea2b2c1d10b029c1ff4c1f3f Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Antipov <dmantipov@yandex.ru>
|
||||
Date: Mon, 25 Sep 2023 12:04:48 +0300
|
||||
Subject: [PATCH 1/7] wifi: rtlwifi: cleanup few rtlxxxx_set_hw_reg() routines
|
||||
|
||||
Since 'u8' comparison against zero is always false, drop the
|
||||
corresponding branches of AMPDU_MIN_SPACE adjustment within
|
||||
'rtlxxxx_set_hw_reg()' for rtl8188ee, rtl8192ce, rtl8192de,
|
||||
rtl8723ae, rtl8723be, and rtl8821ae. Compile tested only.
|
||||
|
||||
Found by Linux Verification Center (linuxtesting.org) with SVACE.
|
||||
|
||||
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20230925090452.25633-1-dmantipov@yandex.ru
|
||||
---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 5 -----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 5 -----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 4 ----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 5 -----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 6 ------
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 5 -----
|
||||
6 files changed, 30 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
|
||||
index 58b1a46066b5..27f6c35ba0f9 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
|
||||
@@ -433,14 +433,9 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
|
||||
break;
|
||||
case HW_VAR_AMPDU_MIN_SPACE:{
|
||||
u8 min_spacing_to_set;
|
||||
- u8 sec_min_space;
|
||||
|
||||
min_spacing_to_set = *val;
|
||||
if (min_spacing_to_set <= 7) {
|
||||
- sec_min_space = 0;
|
||||
-
|
||||
- if (min_spacing_to_set < sec_min_space)
|
||||
- min_spacing_to_set = sec_min_space;
|
||||
|
||||
mac->min_space_cfg = ((mac->min_space_cfg &
|
||||
0xf8) |
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
|
||||
index 049c4fe9eeed..0bc915723b93 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
|
||||
@@ -208,14 +208,9 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
|
||||
}
|
||||
case HW_VAR_AMPDU_MIN_SPACE:{
|
||||
u8 min_spacing_to_set;
|
||||
- u8 sec_min_space;
|
||||
|
||||
min_spacing_to_set = *val;
|
||||
if (min_spacing_to_set <= 7) {
|
||||
- sec_min_space = 0;
|
||||
-
|
||||
- if (min_spacing_to_set < sec_min_space)
|
||||
- min_spacing_to_set = sec_min_space;
|
||||
|
||||
mac->min_space_cfg = ((mac->min_space_cfg &
|
||||
0xf8) |
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
|
||||
index 31a18bbface9..743ac6871bf4 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
|
||||
@@ -225,13 +225,9 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
|
||||
}
|
||||
case HW_VAR_AMPDU_MIN_SPACE: {
|
||||
u8 min_spacing_to_set;
|
||||
- u8 sec_min_space;
|
||||
|
||||
min_spacing_to_set = *val;
|
||||
if (min_spacing_to_set <= 7) {
|
||||
- sec_min_space = 0;
|
||||
- if (min_spacing_to_set < sec_min_space)
|
||||
- min_spacing_to_set = sec_min_space;
|
||||
mac->min_space_cfg = ((mac->min_space_cfg & 0xf8) |
|
||||
min_spacing_to_set);
|
||||
*val = min_spacing_to_set;
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
|
||||
index d26d4c4314a3..6991713a66d0 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
|
||||
@@ -212,14 +212,9 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
|
||||
}
|
||||
case HW_VAR_AMPDU_MIN_SPACE:{
|
||||
u8 min_spacing_to_set;
|
||||
- u8 sec_min_space;
|
||||
|
||||
min_spacing_to_set = *((u8 *)val);
|
||||
if (min_spacing_to_set <= 7) {
|
||||
- sec_min_space = 0;
|
||||
-
|
||||
- if (min_spacing_to_set < sec_min_space)
|
||||
- min_spacing_to_set = sec_min_space;
|
||||
|
||||
mac->min_space_cfg = ((mac->min_space_cfg &
|
||||
0xf8) |
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
|
||||
index 15575644551f..0e77de1baaf8 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
|
||||
@@ -468,15 +468,9 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
|
||||
break;
|
||||
case HW_VAR_AMPDU_MIN_SPACE:{
|
||||
u8 min_spacing_to_set;
|
||||
- u8 sec_min_space;
|
||||
|
||||
min_spacing_to_set = *((u8 *)val);
|
||||
if (min_spacing_to_set <= 7) {
|
||||
- sec_min_space = 0;
|
||||
-
|
||||
- if (min_spacing_to_set < sec_min_space)
|
||||
- min_spacing_to_set = sec_min_space;
|
||||
-
|
||||
mac->min_space_cfg = ((mac->min_space_cfg & 0xf8) |
|
||||
min_spacing_to_set);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
|
||||
index 3f8f6da33b12..1633328bc3d1 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
|
||||
@@ -546,14 +546,9 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
|
||||
break;
|
||||
case HW_VAR_AMPDU_MIN_SPACE:{
|
||||
u8 min_spacing_to_set;
|
||||
- u8 sec_min_space;
|
||||
|
||||
min_spacing_to_set = *((u8 *)val);
|
||||
if (min_spacing_to_set <= 7) {
|
||||
- sec_min_space = 0;
|
||||
-
|
||||
- if (min_spacing_to_set < sec_min_space)
|
||||
- min_spacing_to_set = sec_min_space;
|
||||
|
||||
mac->min_space_cfg = ((mac->min_space_cfg &
|
||||
0xf8) |
|
||||
--
|
||||
2.43.0
|
||||
|
@ -0,0 +1,62 @@
|
||||
From 583494febbdd6a76b6c2a3fad704082f4f9f4d75 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Antipov <dmantipov@yandex.ru>
|
||||
Date: Tue, 3 Oct 2023 07:33:16 +0300
|
||||
Subject: [PATCH 2/7] wifi: rtlwifi: remove unreachable code in
|
||||
rtl92d_dm_check_edca_turbo()
|
||||
|
||||
Since '!(0x5ea42b & 0xffff0000)' is always false, remove unreachable
|
||||
block in 'rtl92d_dm_check_edca_turbo()' and convert EDCA limits to
|
||||
constant variables. Compile tested only.
|
||||
|
||||
Found by Linux Verification Center (linuxtesting.org) with SVACE.
|
||||
|
||||
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20231003043318.11370-1-dmantipov@yandex.ru
|
||||
---
|
||||
.../wireless/realtek/rtlwifi/rtl8192de/dm.c | 18 ++----------------
|
||||
1 file changed, 2 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.c
|
||||
index 6cc9c7649eda..cf4aca83bd05 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/dm.c
|
||||
@@ -592,32 +592,18 @@ static void rtl92d_dm_check_edca_turbo(struct ieee80211_hw *hw)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
|
||||
+ const u32 edca_be_ul = 0x5ea42b;
|
||||
+ const u32 edca_be_dl = 0x5ea42b;
|
||||
static u64 last_txok_cnt;
|
||||
static u64 last_rxok_cnt;
|
||||
u64 cur_txok_cnt;
|
||||
u64 cur_rxok_cnt;
|
||||
- u32 edca_be_ul = 0x5ea42b;
|
||||
- u32 edca_be_dl = 0x5ea42b;
|
||||
|
||||
if (mac->link_state != MAC80211_LINKED) {
|
||||
rtlpriv->dm.current_turbo_edca = false;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
- /* Enable BEQ TxOP limit configuration in wireless G-mode. */
|
||||
- /* To check whether we shall force turn on TXOP configuration. */
|
||||
- if ((!rtlpriv->dm.disable_framebursting) &&
|
||||
- (rtlpriv->sec.pairwise_enc_algorithm == WEP40_ENCRYPTION ||
|
||||
- rtlpriv->sec.pairwise_enc_algorithm == WEP104_ENCRYPTION ||
|
||||
- rtlpriv->sec.pairwise_enc_algorithm == TKIP_ENCRYPTION)) {
|
||||
- /* Force TxOP limit to 0x005e for UL. */
|
||||
- if (!(edca_be_ul & 0xffff0000))
|
||||
- edca_be_ul |= 0x005e0000;
|
||||
- /* Force TxOP limit to 0x005e for DL. */
|
||||
- if (!(edca_be_dl & 0xffff0000))
|
||||
- edca_be_dl |= 0x005e0000;
|
||||
- }
|
||||
-
|
||||
if ((!rtlpriv->dm.is_any_nonbepkts) &&
|
||||
(!rtlpriv->dm.disable_framebursting)) {
|
||||
cur_txok_cnt = rtlpriv->stats.txbytesunicast - last_txok_cnt;
|
||||
--
|
||||
2.43.0
|
||||
|
413
packages/linux/patches/rtlwifi/6.9/0003-wifi-rtlwifi-simplify-TX-command-fill-callbacks.patch
vendored
Normal file
413
packages/linux/patches/rtlwifi/6.9/0003-wifi-rtlwifi-simplify-TX-command-fill-callbacks.patch
vendored
Normal file
@ -0,0 +1,413 @@
|
||||
From bc77b0b9adf81b9d4b7a33de3246f75fe756fd32 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Antipov <dmantipov@yandex.ru>
|
||||
Date: Wed, 11 Oct 2023 18:44:37 +0300
|
||||
Subject: [PATCH 3/7] wifi: rtlwifi: simplify TX command fill callbacks
|
||||
|
||||
Since 'rtlpriv->cfg->ops->fill_tx_cmddesc()' is always called
|
||||
with 'firstseg' and 'lastseg' set to 1 (and the latter is
|
||||
never actually used), all of the relevant chip-specific
|
||||
routines may be simplified. Compile tested only.
|
||||
|
||||
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20231011154442.52457-2-dmantipov@yandex.ru
|
||||
---
|
||||
drivers/net/wireless/realtek/rtlwifi/core.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c | 8 +++-----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c | 9 +++------
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c | 8 +++-----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h | 5 ++---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 8 +++-----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c | 8 +++-----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c | 2 +-
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.h | 4 ++--
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c | 8 +++-----
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c | 5 ++---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/wifi.h | 1 -
|
||||
23 files changed, 29 insertions(+), 53 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
|
||||
index 3835b639d453..cc9b2a459386 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/core.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/core.c
|
||||
@@ -1897,7 +1897,7 @@ bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
/*this is wrong, fill_tx_cmddesc needs update*/
|
||||
pdesc = &ring->desc[0];
|
||||
|
||||
- rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb);
|
||||
+ rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, skb);
|
||||
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
|
||||
index 65ebe52883d3..d094163a9a71 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c
|
||||
@@ -665,9 +665,8 @@ void rtl88ee_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
-void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
@@ -687,8 +686,7 @@ void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
|
||||
- if (firstseg)
|
||||
- set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
+ set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
|
||||
set_tx_desc_tx_rate(pdesc, DESC92C_RATE1M);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h
|
||||
index e17f70b4d199..aae654b0e3ba 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.h
|
||||
@@ -797,6 +797,5 @@ bool rtl88ee_is_tx_desc_closed(struct ieee80211_hw *hw,
|
||||
u8 hw_queue, u16 index);
|
||||
void rtl88ee_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
|
||||
index 5376bb34251f..50e139186a93 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.c
|
||||
@@ -518,9 +518,8 @@ void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
-void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
@@ -540,9 +539,7 @@ void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
|
||||
- if (firstseg)
|
||||
- set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
-
|
||||
+ set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
|
||||
|
||||
set_tx_desc_seq(pdesc, 0);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.h
|
||||
index b45b05a6a523..f3ffe3d9883c 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/trx.h
|
||||
@@ -527,6 +527,5 @@ bool rtl92ce_is_tx_desc_closed(struct ieee80211_hw *hw,
|
||||
u8 hw_queue, u16 index);
|
||||
void rtl92ce_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool b_firstseg, bool b_lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
|
||||
index a040c07791d1..5ec0eb8773a5 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
|
||||
@@ -1539,7 +1539,7 @@ static bool usb_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)
|
||||
* if its "here".
|
||||
*
|
||||
* This is maybe necessary:
|
||||
- * rtlpriv->cfg->ops->fill_tx_cmddesc(hw, buffer, 1, 1, skb);
|
||||
+ * rtlpriv->cfg->ops->fill_tx_cmddesc(hw, buffer, skb);
|
||||
*/
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
|
||||
index b70767e72f3d..9969e9d1fc4b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
|
||||
@@ -626,9 +626,8 @@ void rtl92cu_fill_fake_txdesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
_rtl_tx_desc_checksum(pdesc);
|
||||
}
|
||||
|
||||
-void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
u8 fw_queue = QSLT_BEACON;
|
||||
@@ -637,8 +636,7 @@ void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
__le32 *pdesc = (__le32 *)pdesc8;
|
||||
|
||||
memset((void *)pdesc, 0, RTL_TX_HEADER_SIZE);
|
||||
- if (firstseg)
|
||||
- set_tx_desc_offset(pdesc, RTL_TX_HEADER_SIZE);
|
||||
+ set_tx_desc_offset(pdesc, RTL_TX_HEADER_SIZE);
|
||||
set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
|
||||
set_tx_desc_seq(pdesc, 0);
|
||||
set_tx_desc_linip(pdesc, 0);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h
|
||||
index 171fe39dfb0c..cc4ef2bfd2e7 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h
|
||||
@@ -396,8 +396,7 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
struct rtl_tcb_desc *tcb_desc);
|
||||
void rtl92cu_fill_fake_txdesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
u32 buffer_len, bool ispspoll);
|
||||
-void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc, bool b_firstseg,
|
||||
- bool b_lastseg, struct sk_buff *skb);
|
||||
+void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
+ struct sk_buff *skb);
|
||||
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
|
||||
index 9ddb8478784b..e1fb29962801 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
|
||||
@@ -469,7 +469,7 @@ static bool _rtl92d_cmd_send_packet(struct ieee80211_hw *hw,
|
||||
pdesc = &ring->desc[idx];
|
||||
/* discard output from call below */
|
||||
rtlpriv->cfg->ops->get_desc(hw, (u8 *)pdesc, true, HW_DESC_OWN);
|
||||
- rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *) pdesc, 1, 1, skb);
|
||||
+ rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, skb);
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
|
||||
rtlpriv->cfg->ops->tx_polling(hw, BEACON_QUEUE);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
|
||||
index c09c0c312665..02ac69c08ed3 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
|
||||
@@ -655,9 +655,8 @@ void rtl92de_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
-void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
@@ -678,8 +677,7 @@ void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
return;
|
||||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
- if (firstseg)
|
||||
- set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
+ set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
/* 5G have no CCK rate
|
||||
* Caution: The macros below are multi-line expansions.
|
||||
* The braces are needed no matter what checkpatch says
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h
|
||||
index d01578875cd5..2992668c156c 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.h
|
||||
@@ -564,7 +564,6 @@ bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw,
|
||||
u8 hw_queue, u16 index);
|
||||
void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool b_firstseg, bool b_lastseg,
|
||||
struct sk_buff *skb);
|
||||
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
|
||||
index a182cdeb58e2..67388e0b3fa0 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.c
|
||||
@@ -827,9 +827,8 @@ void rtl92ee_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
-void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
@@ -846,8 +845,7 @@ void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
}
|
||||
clear_pci_tx_desc_content(pdesc, txdesc_len);
|
||||
|
||||
- if (firstseg)
|
||||
- set_tx_desc_offset(pdesc, txdesc_len);
|
||||
+ set_tx_desc_offset(pdesc, txdesc_len);
|
||||
|
||||
set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.h
|
||||
index 967cef3a9cbf..3852a50a688b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/trx.h
|
||||
@@ -743,6 +743,5 @@ u64 rtl92ee_get_desc(struct ieee80211_hw *hw,
|
||||
bool rtl92ee_is_tx_desc_closed(struct ieee80211_hw *hw, u8 hw_queue, u16 index);
|
||||
void rtl92ee_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c
|
||||
index f570495af044..579b1789d6d1 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/fw.c
|
||||
@@ -122,7 +122,7 @@ static bool _rtl92s_cmd_send_packet(struct ieee80211_hw *hw,
|
||||
|
||||
idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries;
|
||||
pdesc = &ring->desc[idx];
|
||||
- rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb);
|
||||
+ rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, skb);
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
|
||||
spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c
|
||||
index a5853a170b58..f104cdb649f8 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.c
|
||||
@@ -492,7 +492,7 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
}
|
||||
|
||||
void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
- bool firstseg, bool lastseg, struct sk_buff *skb)
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.h
|
||||
index 90aa12fc6a7f..40291a6a15d0 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/trx.h
|
||||
@@ -10,8 +10,8 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
struct ieee80211_sta *sta,
|
||||
struct sk_buff *skb, u8 hw_queue,
|
||||
struct rtl_tcb_desc *ptcb_desc);
|
||||
-void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb);
|
||||
+void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
+ struct sk_buff *skb);
|
||||
bool rtl92se_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *stats,
|
||||
struct ieee80211_rx_status *rx_status, u8 *pdesc,
|
||||
struct sk_buff *skb);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c
|
||||
index 7f294e698994..d9823ddab7be 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.c
|
||||
@@ -519,9 +519,8 @@ void rtl8723e_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
-void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
@@ -541,8 +540,7 @@ void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
|
||||
- if (firstseg)
|
||||
- set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
+ set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
|
||||
set_tx_desc_tx_rate(pdesc, DESC92C_RATE1M);
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.h
|
||||
index 2d25f62a4d52..f352fddfff32 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/trx.h
|
||||
@@ -530,6 +530,5 @@ bool rtl8723e_is_tx_desc_closed(struct ieee80211_hw *hw,
|
||||
u8 hw_queue, u16 index);
|
||||
void rtl8723e_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c
|
||||
index 24ef7cc52e99..8b6352f7f93b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.c
|
||||
@@ -585,7 +585,6 @@ void rtl8723be_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
}
|
||||
|
||||
void rtl8723be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.h
|
||||
index 174aca20c7e1..da027f915cf4 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.h
|
||||
@@ -642,6 +642,5 @@ bool rtl8723be_is_tx_desc_closed(struct ieee80211_hw *hw,
|
||||
u8 hw_queue, u16 index);
|
||||
void rtl8723be_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl8723be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
|
||||
index d7cb3319d885..bd71592fe26a 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.c
|
||||
@@ -828,9 +828,8 @@ void rtl8821ae_tx_fill_desc(struct ieee80211_hw *hw,
|
||||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
-void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
- u8 *pdesc8, bool firstseg,
|
||||
- bool lastseg, struct sk_buff *skb)
|
||||
+void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
+ struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.h
|
||||
index a9ed6fd41089..1155365348f3 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/trx.h
|
||||
@@ -648,6 +648,5 @@ bool rtl8821ae_is_tx_desc_closed(struct ieee80211_hw *hw,
|
||||
u8 hw_queue, u16 index);
|
||||
void rtl8821ae_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
index 2e7e04f91279..600b33905cab 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
@@ -2249,7 +2249,6 @@ struct rtl_hal_ops {
|
||||
void (*fill_fake_txdesc)(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
u32 buffer_len, bool bsspspoll);
|
||||
void (*fill_tx_cmddesc)(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
- bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
void (*fill_tx_special_desc)(struct ieee80211_hw *hw,
|
||||
u8 *pdesc, u8 *pbd_desc,
|
||||
--
|
||||
2.43.0
|
||||
|
182
packages/linux/patches/rtlwifi/6.9/0004-wifi-rtlwifi-drop-unused-const_amdpci_aspm.patch
vendored
Normal file
182
packages/linux/patches/rtlwifi/6.9/0004-wifi-rtlwifi-drop-unused-const_amdpci_aspm.patch
vendored
Normal file
@ -0,0 +1,182 @@
|
||||
From 1705e79a096e605b9f9da5442024f05c5e240694 Mon Sep 17 00:00:00 2001
|
||||
From: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Date: Thu, 16 Nov 2023 12:05:29 -0600
|
||||
Subject: [PATCH 4/7] wifi: rtlwifi: drop unused const_amdpci_aspm
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Remove the unused "const_amdpci_aspm" member of struct rtl_pci and
|
||||
struct rtl_ps_ctl.
|
||||
|
||||
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://lore.kernel.org/r/20231116180529.52752-1-helgaas@kernel.org
|
||||
---
|
||||
drivers/net/wireless/realtek/rtlwifi/pci.c | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/pci.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c | 3 ---
|
||||
drivers/net/wireless/realtek/rtlwifi/wifi.h | 2 --
|
||||
11 files changed, 28 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
|
||||
index 9886e719739b..b163a069660b 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/pci.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
|
||||
@@ -70,7 +70,6 @@ static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw)
|
||||
ppsc->support_aspm = false;
|
||||
|
||||
/*Update PCI ASPM setting */
|
||||
- ppsc->const_amdpci_aspm = rtlpci->const_amdpci_aspm;
|
||||
switch (rtlpci->const_pci_aspm) {
|
||||
case 0:
|
||||
/*No ASPM */
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.h b/drivers/net/wireless/realtek/rtlwifi/pci.h
|
||||
index 866861626a0a..4725d43609fd 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/pci.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.h
|
||||
@@ -195,7 +195,6 @@ struct rtl_pci {
|
||||
u32 reg_bcn_ctrl_val;
|
||||
|
||||
/*ASPM*/ u8 const_pci_aspm;
|
||||
- u8 const_amdpci_aspm;
|
||||
u8 const_hwsw_rfoff_d3;
|
||||
u8 const_support_pciaspm;
|
||||
/*pci-e bridge */
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c
|
||||
index b77937fe2448..37bb59fa8bfa 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/sw.c
|
||||
@@ -21,9 +21,6 @@ static void rtl88e_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
* 1 - Enable ASPM without Clock Req,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c
|
||||
index e452275d8789..e20f2bec45c4 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/sw.c
|
||||
@@ -24,9 +24,6 @@ static void rtl92c_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/*
|
||||
* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c
|
||||
index 11f319c97124..afd685ed460a 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/sw.c
|
||||
@@ -21,9 +21,6 @@ static void rtl92d_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/*
|
||||
* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c
|
||||
index 616a47d8d97a..a5ea2b44a97c 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/sw.c
|
||||
@@ -24,9 +24,6 @@ static void rtl92ee_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/**
|
||||
* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
|
||||
index 30bce381c3bb..675bdd32feb1 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/sw.c
|
||||
@@ -21,9 +21,6 @@ static void rtl92s_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
* 1 - Enable ASPM without Clock Req,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c
|
||||
index c821436a1991..dd7505e2f22c 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/sw.c
|
||||
@@ -26,9 +26,6 @@ static void rtl8723e_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/**
|
||||
* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
|
||||
index 43b611d5288d..162c34f0e9b7 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.c
|
||||
@@ -26,9 +26,6 @@ static void rtl8723be_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
* 1 - Enable ASPM without Clock Req,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
|
||||
index 0bca542e103f..7b911695db33 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c
|
||||
@@ -23,9 +23,6 @@ static void rtl8821ae_init_aspm_vars(struct ieee80211_hw *hw)
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
||||
- /*close ASPM for AMD defaultly */
|
||||
- rtlpci->const_amdpci_aspm = 0;
|
||||
-
|
||||
/**
|
||||
* ASPM PS mode.
|
||||
* 0 - Disable ASPM,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
index 600b33905cab..b105c713e35f 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
@@ -2023,8 +2023,6 @@ struct rtl_ps_ctl {
|
||||
u32 cur_ps_level;
|
||||
u32 reg_rfps_level;
|
||||
|
||||
- /*just for PCIE ASPM */
|
||||
- u8 const_amdpci_aspm;
|
||||
bool pwrdown_mode;
|
||||
|
||||
enum rf_pwrstate inactive_pwrstate;
|
||||
--
|
||||
2.43.0
|
||||
|
@ -0,0 +1,50 @@
|
||||
From 366e361d988e0d62cc2b27e1e6255651b0353f3c Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Sat, 13 Jan 2024 01:42:29 +0200
|
||||
Subject: [PATCH 5/7] wifi: rtlwifi: rtl8192de: Don't read register in
|
||||
_rtl92de_query_rxphystatus
|
||||
|
||||
Instead of reading bit 9 of RFPGA0_XA_HSSIPARAMETER2 every time a frame
|
||||
is received, just use rtlphy->cck_high_power, which is initialised in
|
||||
_rtl92d_phy_bb_config(). That bit never changes anyway.
|
||||
|
||||
With this change _rtl92de_query_rxphystatus() can be shared with the
|
||||
upcoming USB driver. The USB driver can't read registers in this
|
||||
function because register reading can sleep.
|
||||
|
||||
Compile tested only.
|
||||
|
||||
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://msgid.link/19a3e023-0eaa-4096-9f78-a2c8e909cb54@gmail.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
|
||||
index 02ac69c08ed3..192982ec8152 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/trx.c
|
||||
@@ -42,6 +42,7 @@ static void _rtl92de_query_rxphystatus(struct ieee80211_hw *hw,
|
||||
bool packet_beacon)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
+ struct rtl_phy *rtlphy = &(rtlpriv->phy);
|
||||
struct rtl_ps_ctl *ppsc = rtl_psc(rtlpriv);
|
||||
struct phy_sts_cck_8192d *cck_buf;
|
||||
s8 rx_pwr_all, rx_pwr[4];
|
||||
@@ -62,9 +63,7 @@ static void _rtl92de_query_rxphystatus(struct ieee80211_hw *hw,
|
||||
u8 report, cck_highpwr;
|
||||
cck_buf = (struct phy_sts_cck_8192d *)p_drvinfo;
|
||||
if (ppsc->rfpwr_state == ERFON)
|
||||
- cck_highpwr = (u8) rtl_get_bbreg(hw,
|
||||
- RFPGA0_XA_HSSIPARAMETER2,
|
||||
- BIT(9));
|
||||
+ cck_highpwr = rtlphy->cck_high_power;
|
||||
else
|
||||
cck_highpwr = false;
|
||||
if (!cck_highpwr) {
|
||||
--
|
||||
2.43.0
|
||||
|
66
packages/linux/patches/rtlwifi/6.9/0006-wifi-rtlwifi-Remove-rtl_intf_ops.read_efuse_byte.patch
vendored
Normal file
66
packages/linux/patches/rtlwifi/6.9/0006-wifi-rtlwifi-Remove-rtl_intf_ops.read_efuse_byte.patch
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
From 5c051c716329a26d66f893e9415f22f65381a77a Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Tue, 27 Feb 2024 14:15:52 +0200
|
||||
Subject: [PATCH 6/7] wifi: rtlwifi: Remove rtl_intf_ops.read_efuse_byte
|
||||
|
||||
PCI drivers and USB drivers can both use the same function,
|
||||
read_efuse_byte(), and they can call it directly.
|
||||
|
||||
rtl8192de was the only user.
|
||||
|
||||
Tested only with the upcoming rtl8192du driver.
|
||||
|
||||
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://msgid.link/4e2c968d-f25c-4a40-be97-4fdcbdde69cf@gmail.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtlwifi/pci.c | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 6 ++----
|
||||
drivers/net/wireless/realtek/rtlwifi/wifi.h | 1 -
|
||||
3 files changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
|
||||
index b163a069660b..6f57bf8f404e 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/pci.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
|
||||
@@ -2422,7 +2422,6 @@ EXPORT_SYMBOL(rtl_pci_resume);
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
const struct rtl_intf_ops rtl_pci_ops = {
|
||||
- .read_efuse_byte = read_efuse_byte,
|
||||
.adapter_start = rtl_pci_start,
|
||||
.adapter_stop = rtl_pci_stop,
|
||||
.check_buddy_priv = rtl_pci_check_buddy_priv,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
|
||||
index 743ac6871bf4..4ba42f6be3f2 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
|
||||
@@ -1669,10 +1669,8 @@ static void _rtl92de_efuse_update_chip_version(struct ieee80211_hw *hw)
|
||||
u8 cutvalue[2];
|
||||
u16 chipvalue;
|
||||
|
||||
- rtlpriv->intf_ops->read_efuse_byte(hw, EEPROME_CHIP_VERSION_H,
|
||||
- &cutvalue[1]);
|
||||
- rtlpriv->intf_ops->read_efuse_byte(hw, EEPROME_CHIP_VERSION_L,
|
||||
- &cutvalue[0]);
|
||||
+ read_efuse_byte(hw, EEPROME_CHIP_VERSION_H, &cutvalue[1]);
|
||||
+ read_efuse_byte(hw, EEPROME_CHIP_VERSION_L, &cutvalue[0]);
|
||||
chipvalue = (cutvalue[1] << 8) | cutvalue[0];
|
||||
switch (chipvalue) {
|
||||
case 0xAA55:
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
index b105c713e35f..3cd95dd4e711 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
@@ -2315,7 +2315,6 @@ struct rtl_hal_ops {
|
||||
|
||||
struct rtl_intf_ops {
|
||||
/*com */
|
||||
- void (*read_efuse_byte)(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf);
|
||||
int (*adapter_start)(struct ieee80211_hw *hw);
|
||||
void (*adapter_stop)(struct ieee80211_hw *hw);
|
||||
bool (*check_buddy_priv)(struct ieee80211_hw *hw,
|
||||
--
|
||||
2.43.0
|
||||
|
259
packages/linux/patches/rtlwifi/6.9/0007-wifi-rtlwifi-rtl_usb-Store-the-endpoint-addresses.patch
vendored
Normal file
259
packages/linux/patches/rtlwifi/6.9/0007-wifi-rtlwifi-rtl_usb-Store-the-endpoint-addresses.patch
vendored
Normal file
@ -0,0 +1,259 @@
|
||||
From 548fc9fe36544db208afb45c4ce6e85c7a548fad Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Tue, 13 Feb 2024 16:33:11 +0200
|
||||
Subject: [PATCH 7/7] wifi: rtlwifi: rtl_usb: Store the endpoint addresses
|
||||
|
||||
And use the stored addresses in rtl8192cu instead of hardcoding them.
|
||||
|
||||
This is what the vendor drivers do.
|
||||
|
||||
Perhaps this is not strictly necessary for RTL8192CU devices. However,
|
||||
the dual mac version of RTL8192DU has two USB interfaces, each with its
|
||||
own set of endpoints. Hardcoding their addresses in the upcoming
|
||||
rtl8192du driver would require making some assumptions which I'm not
|
||||
qualified to make.
|
||||
|
||||
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
||||
Link: https://msgid.link/7b6a602a-6101-4bab-958d-bcff4d565b40@gmail.com
|
||||
---
|
||||
.../wireless/realtek/rtlwifi/rtl8192cu/sw.c | 1 -
|
||||
.../wireless/realtek/rtlwifi/rtl8192cu/trx.c | 77 ++++++++++---------
|
||||
.../wireless/realtek/rtlwifi/rtl8192cu/trx.h | 1 -
|
||||
drivers/net/wireless/realtek/rtlwifi/usb.c | 31 ++++++--
|
||||
drivers/net/wireless/realtek/rtlwifi/usb.h | 2 +
|
||||
drivers/net/wireless/realtek/rtlwifi/wifi.h | 1 -
|
||||
6 files changed, 68 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c
|
||||
index e6403d4c937c..bf63c060c985 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/sw.c
|
||||
@@ -146,7 +146,6 @@ MODULE_PARM_DESC(debug_mask, "Set debug mask (default 0)");
|
||||
|
||||
static struct rtl_hal_usbint_cfg rtl92cu_interface_cfg = {
|
||||
/* rx */
|
||||
- .in_ep_num = RTL92C_USB_BULK_IN_NUM,
|
||||
.rx_urb_num = RTL92C_NUM_RX_URBS,
|
||||
.rx_max_size = RTL92C_SIZE_MAX_RX_BUFFER,
|
||||
.usb_rx_hdl = rtl8192cu_rx_hdl,
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
|
||||
index 9969e9d1fc4b..e051295ea596 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.c
|
||||
@@ -79,68 +79,75 @@ static int configvernoutep(struct ieee80211_hw *hw)
|
||||
static void twooutepmapping(struct ieee80211_hw *hw, bool is_chip8,
|
||||
bool bwificfg, struct rtl_ep_map *ep_map)
|
||||
{
|
||||
+ struct rtl_usb_priv *usb_priv = rtl_usbpriv(hw);
|
||||
+ struct rtl_usb *rtlusb = rtl_usbdev(usb_priv);
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
|
||||
if (bwificfg) { /* for WMM */
|
||||
rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG,
|
||||
"USB Chip-B & WMM Setting.....\n");
|
||||
- ep_map->ep_mapping[RTL_TXQ_BE] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BK] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VI] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VO] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_MGT] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BCN] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_HI] = 2;
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BE] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BK] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VI] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VO] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_MGT] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BCN] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_HI] = rtlusb->out_eps[0];
|
||||
} else { /* typical setting */
|
||||
rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG,
|
||||
"USB typical Setting.....\n");
|
||||
- ep_map->ep_mapping[RTL_TXQ_BE] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BK] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VI] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VO] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_MGT] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BCN] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_HI] = 2;
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BE] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BK] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VI] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VO] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_MGT] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BCN] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_HI] = rtlusb->out_eps[0];
|
||||
}
|
||||
}
|
||||
|
||||
static void threeoutepmapping(struct ieee80211_hw *hw, bool bwificfg,
|
||||
struct rtl_ep_map *ep_map)
|
||||
{
|
||||
+ struct rtl_usb_priv *usb_priv = rtl_usbpriv(hw);
|
||||
+ struct rtl_usb *rtlusb = rtl_usbdev(usb_priv);
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
|
||||
if (bwificfg) { /* for WMM */
|
||||
rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG,
|
||||
"USB 3EP Setting for WMM.....\n");
|
||||
- ep_map->ep_mapping[RTL_TXQ_BE] = 5;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BK] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VI] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VO] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_MGT] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BCN] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_HI] = 2;
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BE] = rtlusb->out_eps[2];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BK] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VI] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VO] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_MGT] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BCN] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_HI] = rtlusb->out_eps[0];
|
||||
} else { /* typical setting */
|
||||
rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG,
|
||||
"USB 3EP Setting for typical.....\n");
|
||||
- ep_map->ep_mapping[RTL_TXQ_BE] = 5;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BK] = 5;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VI] = 3;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VO] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_MGT] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BCN] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_HI] = 2;
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BE] = rtlusb->out_eps[2];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BK] = rtlusb->out_eps[2];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VI] = rtlusb->out_eps[1];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VO] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_MGT] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BCN] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_HI] = rtlusb->out_eps[0];
|
||||
}
|
||||
}
|
||||
|
||||
static void oneoutepmapping(struct ieee80211_hw *hw, struct rtl_ep_map *ep_map)
|
||||
{
|
||||
- ep_map->ep_mapping[RTL_TXQ_BE] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BK] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VI] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_VO] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_MGT] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_BCN] = 2;
|
||||
- ep_map->ep_mapping[RTL_TXQ_HI] = 2;
|
||||
+ struct rtl_usb_priv *usb_priv = rtl_usbpriv(hw);
|
||||
+ struct rtl_usb *rtlusb = rtl_usbdev(usb_priv);
|
||||
+
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BE] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BK] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VI] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_VO] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_MGT] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_BCN] = rtlusb->out_eps[0];
|
||||
+ ep_map->ep_mapping[RTL_TXQ_HI] = rtlusb->out_eps[0];
|
||||
}
|
||||
|
||||
static int _out_ep_mapping(struct ieee80211_hw *hw)
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h
|
||||
index cc4ef2bfd2e7..31ec9deae7fb 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/trx.h
|
||||
@@ -4,7 +4,6 @@
|
||||
#ifndef __RTL92CU_TRX_H__
|
||||
#define __RTL92CU_TRX_H__
|
||||
|
||||
-#define RTL92C_USB_BULK_IN_NUM 1
|
||||
#define RTL92C_NUM_RX_URBS 8
|
||||
#define RTL92C_NUM_TX_URBS 32
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.c b/drivers/net/wireless/realtek/rtlwifi/usb.c
|
||||
index 30bf2775a335..706909a50790 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/usb.c
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/usb.c
|
||||
@@ -280,7 +280,6 @@ static int _rtl_usb_init_rx(struct ieee80211_hw *hw)
|
||||
|
||||
rtlusb->rx_max_size = rtlpriv->cfg->usb_interface_cfg->rx_max_size;
|
||||
rtlusb->rx_urb_num = rtlpriv->cfg->usb_interface_cfg->rx_urb_num;
|
||||
- rtlusb->in_ep = rtlpriv->cfg->usb_interface_cfg->in_ep_num;
|
||||
rtlusb->usb_rx_hdl = rtlpriv->cfg->usb_interface_cfg->usb_rx_hdl;
|
||||
rtlusb->usb_rx_segregate_hdl =
|
||||
rtlpriv->cfg->usb_interface_cfg->usb_rx_segregate_hdl;
|
||||
@@ -312,20 +311,38 @@ static int _rtl_usb_init(struct ieee80211_hw *hw)
|
||||
|
||||
pep_desc = &usb_intf->cur_altsetting->endpoint[epidx].desc;
|
||||
|
||||
- if (usb_endpoint_dir_in(pep_desc))
|
||||
+ if (usb_endpoint_dir_in(pep_desc)) {
|
||||
+ if (usb_endpoint_xfer_bulk(pep_desc)) {
|
||||
+ /* The vendor drivers assume there is only one
|
||||
+ * bulk in ep and that it's the first in ep.
|
||||
+ */
|
||||
+ if (rtlusb->in_ep_nums == 0)
|
||||
+ rtlusb->in_ep = usb_endpoint_num(pep_desc);
|
||||
+ else
|
||||
+ pr_warn("%s: bulk in endpoint is not the first in endpoint\n",
|
||||
+ __func__);
|
||||
+ }
|
||||
+
|
||||
rtlusb->in_ep_nums++;
|
||||
- else if (usb_endpoint_dir_out(pep_desc))
|
||||
+ } else if (usb_endpoint_dir_out(pep_desc)) {
|
||||
+ if (rtlusb->out_ep_nums < RTL_USB_MAX_BULKOUT_NUM) {
|
||||
+ if (usb_endpoint_xfer_bulk(pep_desc))
|
||||
+ rtlusb->out_eps[rtlusb->out_ep_nums] =
|
||||
+ usb_endpoint_num(pep_desc);
|
||||
+ } else {
|
||||
+ pr_warn("%s: found more bulk out endpoints than the expected %d\n",
|
||||
+ __func__, RTL_USB_MAX_BULKOUT_NUM);
|
||||
+ }
|
||||
+
|
||||
rtlusb->out_ep_nums++;
|
||||
+ }
|
||||
|
||||
rtl_dbg(rtlpriv, COMP_INIT, DBG_DMESG,
|
||||
"USB EP(0x%02x), MaxPacketSize=%d, Interval=%d\n",
|
||||
pep_desc->bEndpointAddress, pep_desc->wMaxPacketSize,
|
||||
pep_desc->bInterval);
|
||||
}
|
||||
- if (rtlusb->in_ep_nums < rtlpriv->cfg->usb_interface_cfg->in_ep_num) {
|
||||
- pr_err("Too few input end points found\n");
|
||||
- return -EINVAL;
|
||||
- }
|
||||
+
|
||||
if (rtlusb->out_ep_nums == 0) {
|
||||
pr_err("No output end points found\n");
|
||||
return -EINVAL;
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/usb.h b/drivers/net/wireless/realtek/rtlwifi/usb.h
|
||||
index 3bf85b23eec1..12529afc0510 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/usb.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/usb.h
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#define RTL_USB_MAX_TXQ_NUM 4 /* max tx queue */
|
||||
#define RTL_USB_MAX_EP_NUM 6 /* max ep number */
|
||||
+#define RTL_USB_MAX_BULKOUT_NUM 4
|
||||
#define RTL_USB_MAX_TX_URBS_NUM 8
|
||||
|
||||
enum rtl_txq {
|
||||
@@ -94,6 +95,7 @@ struct rtl_usb {
|
||||
|
||||
/* Tx */
|
||||
u8 out_ep_nums ;
|
||||
+ u8 out_eps[RTL_USB_MAX_BULKOUT_NUM];
|
||||
u8 out_queue_sel;
|
||||
struct rtl_ep_map ep_map;
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
index 3cd95dd4e711..b2179fd1d709 100644
|
||||
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
|
||||
@@ -2378,7 +2378,6 @@ struct rtl_mod_params {
|
||||
|
||||
struct rtl_hal_usbint_cfg {
|
||||
/* data - rx */
|
||||
- u32 in_ep_num;
|
||||
u32 rx_urb_num;
|
||||
u32 rx_max_size;
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
Loading…
x
Reference in New Issue
Block a user