mirror of
https://github.com/LibreELEC/LibreELEC.tv
synced 2025-09-24 19:46:01 +07:00
https://patchwork.kernel.org/project/linux-wireless/cover/d2870a44-9b91-4090-9a25-873eb62997f5@gmail.com/
107 lines
4.3 KiB
Diff
107 lines
4.3 KiB
Diff
From 9bb762b3a957faffb4ba596165525521c07ad2eb Mon Sep 17 00:00:00 2001
|
|
From: Fiona Klute <fiona.klute@gmx.de>
|
|
Date: Mon, 11 Mar 2024 11:37:07 +0100
|
|
Subject: [PATCH] wifi: rtw88: Add definitions for 8703b chip
|
|
|
|
default_cck_index is used in power track, the rx_cck_agc_report_type
|
|
for RX PHY status. GET_RX_DESC_BW is an RX descriptor field not used
|
|
by the other chip drivers.
|
|
|
|
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Tested-by: Pavel Machek <pavel@ucw.cz>
|
|
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://msgid.link/20240311103735.615541-4-fiona.klute@gmx.de
|
|
---
|
|
drivers/net/wireless/realtek/rtw88/main.h | 3 +++
|
|
drivers/net/wireless/realtek/rtw88/rtw8723x.h | 11 +++++++++++
|
|
drivers/net/wireless/realtek/rtw88/rx.h | 2 ++
|
|
3 files changed, 16 insertions(+)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtw88/main.h b/drivers/net/wireless/realtek/rtw88/main.h
|
|
index e14d1da43940fa..49894331f7b495 100644
|
|
--- a/drivers/net/wireless/realtek/rtw88/main.h
|
|
+++ b/drivers/net/wireless/realtek/rtw88/main.h
|
|
@@ -187,6 +187,7 @@ enum rtw_chip_type {
|
|
RTW_CHIP_TYPE_8822C,
|
|
RTW_CHIP_TYPE_8723D,
|
|
RTW_CHIP_TYPE_8821C,
|
|
+ RTW_CHIP_TYPE_8703B,
|
|
};
|
|
|
|
enum rtw_tx_queue_type {
|
|
@@ -1700,11 +1701,13 @@ struct rtw_dm_info {
|
|
s8 delta_power_index[RTW_RF_PATH_MAX];
|
|
s8 delta_power_index_last[RTW_RF_PATH_MAX];
|
|
u8 default_ofdm_index;
|
|
+ u8 default_cck_index;
|
|
bool pwr_trk_triggered;
|
|
bool pwr_trk_init_trigger;
|
|
struct ewma_thermal avg_thermal[RTW_RF_PATH_MAX];
|
|
s8 txagc_remnant_cck;
|
|
s8 txagc_remnant_ofdm;
|
|
+ u8 rx_cck_agc_report_type;
|
|
|
|
/* backup dack results for each path and I/Q */
|
|
u32 dack_adck[RTW_RF_PATH_MAX];
|
|
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8723x.h b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
|
|
index d6dfee5a1806e2..e93bfce994bf82 100644
|
|
--- a/drivers/net/wireless/realtek/rtw88/rtw8723x.h
|
|
+++ b/drivers/net/wireless/realtek/rtw88/rtw8723x.h
|
|
@@ -165,6 +165,8 @@ extern const struct rtw8723x_common rtw8723x_common;
|
|
#define MAX_TOLERANCE 5
|
|
#define IQK_TX_X_ERR 0x142
|
|
#define IQK_TX_Y_ERR 0x42
|
|
+#define IQK_RX_X_ERR 0x132
|
|
+#define IQK_RX_Y_ERR 0x36
|
|
#define IQK_RX_X_UPPER 0x11a
|
|
#define IQK_RX_X_LOWER 0xe6
|
|
#define IQK_RX_Y_LMT 0x1a
|
|
@@ -177,6 +179,10 @@ extern const struct rtw8723x_common rtw8723x_common;
|
|
#define DIS_3WIRE 0xccf000c0
|
|
#define EN_3WIRE 0xccc000c0
|
|
#define START_PSD 0x400000
|
|
+#define FREQ_CH5 0xfccd
|
|
+#define FREQ_CH6 0xfc4d
|
|
+#define FREQ_CH7 0xffcd
|
|
+#define FREQ_CH8 0xff4d
|
|
#define FREQ_CH13 0xfccd
|
|
#define FREQ_CH14 0xff9a
|
|
#define RFCFGCH_CHANNEL_MASK GENMASK(7, 0)
|
|
@@ -239,10 +245,13 @@ extern const struct rtw8723x_common rtw8723x_common;
|
|
#define BIT_MASK_OFDM0_EXT_C BIT(29)
|
|
#define BIT_MASK_OFDM0_EXTS (BIT(31) | BIT(29) | BIT(28))
|
|
#define BIT_SET_OFDM0_EXTS(a, c, d) (((a) << 31) | ((c) << 29) | ((d) << 28))
|
|
+#define BIT_MASK_OFDM0_EXTS_B (BIT(27) | BIT(25) | BIT(24))
|
|
+#define BIT_SET_OFDM0_EXTS_B(a, c, d) (((a) << 27) | ((c) << 25) | ((d) << 24))
|
|
#define REG_OFDM0_XAAGC1 0x0c50
|
|
#define REG_OFDM0_XBAGC1 0x0c58
|
|
#define REG_AGCRSSI 0x0c78
|
|
#define REG_OFDM_0_XA_TX_IQ_IMBALANCE 0x0c80
|
|
+#define REG_OFDM_0_XB_TX_IQ_IMBALANCE 0x0c88
|
|
#define BIT_MASK_TXIQ_ELM_A 0x03ff
|
|
#define BIT_SET_TXIQ_ELM_ACD(a, c, d) (((d) << 22) | (((c) & 0x3F) << 16) | \
|
|
((a) & 0x03ff))
|
|
@@ -303,6 +312,8 @@ extern const struct rtw8723x_common rtw8723x_common;
|
|
#define REG_IQK_AGC_RSP_11N 0x0e4c
|
|
#define REG_TX_IQK_TONE_B 0x0e50
|
|
#define REG_RX_IQK_TONE_B 0x0e54
|
|
+#define REG_TXIQK_PI_B 0x0e58
|
|
+#define REG_RXIQK_PI_B 0x0e5c
|
|
#define REG_IQK_RES_TX 0x0e94
|
|
#define BIT_MASK_RES_TX GENMASK(25, 16)
|
|
#define REG_IQK_RES_TY 0x0e9c
|
|
diff --git a/drivers/net/wireless/realtek/rtw88/rx.h b/drivers/net/wireless/realtek/rtw88/rx.h
|
|
index 3342e37612813a..d3668c4efc24d5 100644
|
|
--- a/drivers/net/wireless/realtek/rtw88/rx.h
|
|
+++ b/drivers/net/wireless/realtek/rtw88/rx.h
|
|
@@ -40,6 +40,8 @@ enum rtw_rx_desc_enc {
|
|
le32_get_bits(*((__le32 *)(rxdesc) + 0x02), GENMASK(30, 29))
|
|
#define GET_RX_DESC_TSFL(rxdesc) \
|
|
le32_get_bits(*((__le32 *)(rxdesc) + 0x05), GENMASK(31, 0))
|
|
+#define GET_RX_DESC_BW(rxdesc) \
|
|
+ (le32_get_bits(*((__le32 *)(rxdesc) + 0x04), GENMASK(31, 24)))
|
|
|
|
void rtw_rx_stats(struct rtw_dev *rtwdev, struct ieee80211_vif *vif,
|
|
struct sk_buff *skb);
|