Search Linux Wireless

[PATCH rtw-next 01/11] wifi: rtw89: Fix rtw89_core_get_ch_dma() for RTL8852CU

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It seems RTL8852CU can only use TX channels 0, 2, and 8 (for band 0),
otherwise the chip stops working after downloading at maximum speed
for a few seconds.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx>
---
 drivers/net/wireless/realtek/rtw89/txrx.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/net/wireless/realtek/rtw89/txrx.h b/drivers/net/wireless/realtek/rtw89/txrx.h
index ec01bfc363da..318fd0ac8726 100644
--- a/drivers/net/wireless/realtek/rtw89/txrx.h
+++ b/drivers/net/wireless/realtek/rtw89/txrx.h
@@ -734,6 +734,25 @@ rtw89_core_get_qsel_mgmt(struct rtw89_dev *rtwdev, struct rtw89_core_tx_request
 
 static inline u8 rtw89_core_get_ch_dma(struct rtw89_dev *rtwdev, u8 qsel)
 {
+	if (rtwdev->hci.type == RTW89_HCI_TYPE_USB &&
+	    rtwdev->chip->chip_id == RTL8852C) {
+		switch (qsel) {
+		default:
+			rtw89_warn(rtwdev, "Cannot map qsel to dma: %d\n",
+				   qsel);
+			fallthrough;
+		case RTW89_TX_QSEL_BE_0:
+		case RTW89_TX_QSEL_VO_0:
+			return RTW89_TXCH_ACH0;
+		case RTW89_TX_QSEL_BK_0:
+		case RTW89_TX_QSEL_VI_0:
+			return RTW89_TXCH_ACH2;
+		case RTW89_TX_QSEL_B0_MGMT:
+		case RTW89_TX_QSEL_B0_HI:
+			return RTW89_TXCH_CH8;
+		}
+	}
+
 	switch (qsel) {
 	default:
 		rtw89_warn(rtwdev, "Cannot map qsel to dma: %d\n", qsel);
-- 
2.50.0





[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux