wifi: rtw88: Add definitions for 8703b chip
authorFiona Klute <fiona.klute@gmx.de>
Mon, 11 Mar 2024 10:37:07 +0000 (11:37 +0100)
committerKalle Valo <kvalo@kernel.org>
Thu, 14 Mar 2024 08:59:29 +0000 (10:59 +0200)
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
drivers/net/wireless/realtek/rtw88/rtw8723x.h
drivers/net/wireless/realtek/rtw88/rx.h

index e14d1da43940fa0700fecf58114dd4afe1bf75fb..49894331f7b49517e6c49dae002441921ae69ecd 100644 (file)
@@ -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];
index d6dfee5a1806e2a1ed4085898c69be8a7fb0b720..e93bfce994bf827c454a62c9c7972d1050af67f8 100644 (file)
@@ -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
index 3342e37612813a7004f2ca1345d5621f59237d6a..d3668c4efc24d52653aacd77ab270fdac037f4c6 100644 (file)
@@ -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);