wifi: rtw89: indicate TX power by rate table inside RFE parameter
authorZong-Zhe Yang <kevin_yang@realtek.com>
Wed, 20 Sep 2023 07:43:18 +0000 (15:43 +0800)
committerKalle Valo <kvalo@kernel.org>
Fri, 22 Sep 2023 07:43:58 +0000 (10:43 +0300)
For next-generation chips, TX power by rate table comes from RFE (RF
front end) parameter. It can be different according to RFE type. So,
we indicate TX power by rate table inside RFE parameter ahead. For
current chips, even with different RFE types, a chip is configured
with a single TX power by rate table. So, this commit doesn't really
affect these currently supported chips.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230920074322.42898-4-pkshih@realtek.com
14 files changed:
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/phy.c
drivers/net/wireless/realtek/rtw89/rtw8851b.c
drivers/net/wireless/realtek/rtw89/rtw8851b_table.c
drivers/net/wireless/realtek/rtw89/rtw8851b_table.h
drivers/net/wireless/realtek/rtw89/rtw8852a.c
drivers/net/wireless/realtek/rtw89/rtw8852a_table.c
drivers/net/wireless/realtek/rtw89/rtw8852a_table.h
drivers/net/wireless/realtek/rtw89/rtw8852b.c
drivers/net/wireless/realtek/rtw89/rtw8852b_table.c
drivers/net/wireless/realtek/rtw89/rtw8852b_table.h
drivers/net/wireless/realtek/rtw89/rtw8852c.c
drivers/net/wireless/realtek/rtw89/rtw8852c_table.c
drivers/net/wireless/realtek/rtw89/rtw8852c_table.h

index 61d46d1301432bf906e441fa49b6a908f1fb3281..62b0cdecb0f744b6a10c92f2adca8e5d25a8efa4 100644 (file)
@@ -3355,6 +3355,7 @@ struct rtw89_txpwr_rule_6ghz {
 };
 
 struct rtw89_rfe_parms {
+       const struct rtw89_txpwr_table *byr_tbl;
        struct rtw89_txpwr_rule_2ghz rule_2ghz;
        struct rtw89_txpwr_rule_5ghz rule_5ghz;
        struct rtw89_txpwr_rule_6ghz rule_6ghz;
@@ -3553,7 +3554,6 @@ struct rtw89_chip_info {
        const struct rtw89_phy_table *rf_table[RF_PATH_MAX];
        const struct rtw89_phy_table *nctl_table;
        const struct rtw89_rfk_tbl *nctl_post_table;
-       const struct rtw89_txpwr_table *byr_table;
        const struct rtw89_phy_dig_gain_table *dig_table;
        const struct rtw89_dig_regs *dig_regs;
        const struct rtw89_phy_tssi_dbw_table *tssi_dbw_table;
index 7139146cb3fad2cc2b2e47f20c5236fc31a06863..d9f56c510eedb3628cbeb8fafe1621ef7781be68 100644 (file)
@@ -4474,7 +4474,7 @@ static void rtw89_phy_env_monitor_init(struct rtw89_dev *rtwdev)
 
 void rtw89_phy_dm_init(struct rtw89_dev *rtwdev)
 {
-       const struct rtw89_chip_info *chip = rtwdev->chip;
+       const struct rtw89_rfe_parms *rfe_parms = rtwdev->rfe_parms;
 
        rtw89_phy_stat_init(rtwdev);
 
@@ -4491,7 +4491,7 @@ void rtw89_phy_dm_init(struct rtw89_dev *rtwdev)
 
        rtw89_phy_init_rf_nctl(rtwdev);
        rtw89_chip_rfk_init(rtwdev);
-       rtw89_load_txpwr_table(rtwdev, chip->byr_table);
+       rtw89_load_txpwr_table(rtwdev, rfe_parms->byr_tbl);
        rtw89_chip_set_txpwr_ctrl(rtwdev);
        rtw89_chip_power_trim(rtwdev);
        rtw89_chip_cfg_txrx_path(rtwdev);
index a6170c8f881361cb12be5a197d2e3cbb08b39543..82622811716065cfac0e372393d7b79ac6e103ac 100644 (file)
@@ -2367,7 +2367,6 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
        .rf_table               = {&rtw89_8851b_phy_radioa_table,},
        .nctl_table             = &rtw89_8851b_phy_nctl_table,
        .nctl_post_table        = &rtw8851b_nctl_post_defs_tbl,
-       .byr_table              = &rtw89_8851b_byr_table,
        .dflt_parms             = &rtw89_8851b_dflt_parms,
        .rfe_parms_conf         = rtw89_8851b_rfe_parms_conf,
        .txpwr_factor_rf        = 2,
index 58d413f61e987a49df5c14996b70711fc0bf44df..bd965538531832705f004a986c97f87a41801687 100644 (file)
@@ -14795,6 +14795,7 @@ const struct rtw89_phy_table rtw89_8851b_phy_nctl_table = {
        .rf_path        = 0, /* don't care */
 };
 
+static
 const struct rtw89_txpwr_table rtw89_8851b_byr_table = {
        .data = rtw89_8851b_txpwr_byrate,
        .size = ARRAY_SIZE(rtw89_8851b_txpwr_byrate),
@@ -14811,6 +14812,7 @@ const struct rtw89_txpwr_track_cfg rtw89_8851b_trk_cfg = {
 };
 
 const struct rtw89_rfe_parms rtw89_8851b_dflt_parms = {
+       .byr_tbl = &rtw89_8851b_byr_table,
        .rule_2ghz = {
                .lmt = &rtw89_8851b_txpwr_lmt_2g,
                .lmt_ru = &rtw89_8851b_txpwr_lmt_ru_2g,
@@ -14823,6 +14825,7 @@ const struct rtw89_rfe_parms rtw89_8851b_dflt_parms = {
 };
 
 static const struct rtw89_rfe_parms rtw89_8851b_rfe_parms_type2 = {
+       .byr_tbl = &rtw89_8851b_byr_table,
        .rule_2ghz = {
                .lmt = &rtw89_8851b_txpwr_lmt_2g_type2,
                .lmt_ru = &rtw89_8851b_txpwr_lmt_ru_2g_type2,
index 7967a98d830e8f332b067ed4d671ee7553b6475e..d8cf545d40a0b4104465e00ed222484398f2ccb9 100644 (file)
@@ -11,7 +11,6 @@ extern const struct rtw89_phy_table rtw89_8851b_phy_bb_table;
 extern const struct rtw89_phy_table rtw89_8851b_phy_bb_gain_table;
 extern const struct rtw89_phy_table rtw89_8851b_phy_radioa_table;
 extern const struct rtw89_phy_table rtw89_8851b_phy_nctl_table;
-extern const struct rtw89_txpwr_table rtw89_8851b_byr_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8851b_trk_cfg;
 extern const struct rtw89_rfe_parms rtw89_8851b_dflt_parms;
 extern const struct rtw89_rfe_parms_conf rtw89_8851b_rfe_parms_conf[];
index db2eb93ef87ffb5c8cd33f01f697b453fe50de87..c783e17c7ae844809dad5ce9d18e1fb5eaedea36 100644 (file)
@@ -2103,7 +2103,6 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
                                   &rtw89_8852a_phy_radiob_table,},
        .nctl_table             = &rtw89_8852a_phy_nctl_table,
        .nctl_post_table        = NULL,
-       .byr_table              = &rtw89_8852a_byr_table,
        .dflt_parms             = &rtw89_8852a_dflt_parms,
        .rfe_parms_conf         = NULL,
        .txpwr_factor_rf        = 2,
index be54194558ffd00db720e2b414bf193a29a39624..495890c180ef6fa64dfae4acc350dde22b17ca78 100644 (file)
@@ -51020,6 +51020,7 @@ const struct rtw89_phy_table rtw89_8852a_phy_nctl_table = {
        .rf_path        = 0, /* don't care */
 };
 
+static
 const struct rtw89_txpwr_table rtw89_8852a_byr_table = {
        .data = rtw89_8852a_txpwr_byrate,
        .size = ARRAY_SIZE(rtw89_8852a_txpwr_byrate),
@@ -51049,6 +51050,7 @@ const struct rtw89_phy_dig_gain_table rtw89_8852a_phy_dig_table = {
 };
 
 const struct rtw89_rfe_parms rtw89_8852a_dflt_parms = {
+       .byr_tbl = &rtw89_8852a_byr_table,
        .rule_2ghz = {
                .lmt = &rtw89_8852a_txpwr_lmt_2g,
                .lmt_ru = &rtw89_8852a_txpwr_lmt_ru_2g,
index 41c379b1044d77cc6eaf45e9fa735ce09320ac79..7463ae6ee3f9b2bbb944bd13bbe7fa3aa25cd891 100644 (file)
@@ -11,7 +11,6 @@ extern const struct rtw89_phy_table rtw89_8852a_phy_bb_table;
 extern const struct rtw89_phy_table rtw89_8852a_phy_radioa_table;
 extern const struct rtw89_phy_table rtw89_8852a_phy_radiob_table;
 extern const struct rtw89_phy_table rtw89_8852a_phy_nctl_table;
-extern const struct rtw89_txpwr_table rtw89_8852a_byr_table;
 extern const struct rtw89_phy_dig_gain_table rtw89_8852a_phy_dig_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8852a_trk_cfg;
 extern const struct rtw89_rfe_parms rtw89_8852a_dflt_parms;
index 90764d8c539ec5ddf38fcc7b4fc80adf373bee6c..eec421e8869741b20e55bb15d7746eef35686abf 100644 (file)
@@ -2537,7 +2537,6 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
                                   &rtw89_8852b_phy_radiob_table,},
        .nctl_table             = &rtw89_8852b_phy_nctl_table,
        .nctl_post_table        = NULL,
-       .byr_table              = &rtw89_8852b_byr_table,
        .dflt_parms             = &rtw89_8852b_dflt_parms,
        .rfe_parms_conf         = NULL,
        .txpwr_factor_rf        = 2,
index 0939e37a9c522ddd497792aeec2ef63a790e7fa6..e319e216f5c43c2acc93f3ded9d64ea60a651ddd 100644 (file)
@@ -22860,6 +22860,7 @@ const struct rtw89_phy_table rtw89_8852b_phy_nctl_table = {
        .rf_path        = 0, /* don't care */
 };
 
+static
 const struct rtw89_txpwr_table rtw89_8852b_byr_table = {
        .data = rtw89_8852b_txpwr_byrate,
        .size = ARRAY_SIZE(rtw89_8852b_txpwr_byrate),
@@ -22882,6 +22883,7 @@ const struct rtw89_txpwr_track_cfg rtw89_8852b_trk_cfg = {
 };
 
 const struct rtw89_rfe_parms rtw89_8852b_dflt_parms = {
+       .byr_tbl = &rtw89_8852b_byr_table,
        .rule_2ghz = {
                .lmt = &rtw89_8852b_txpwr_lmt_2g,
                .lmt_ru = &rtw89_8852b_txpwr_lmt_ru_2g,
index 816b15285c6633178c39f80ba7130cb9ba74579b..da6c90e2ba9314446dbd0cca6a57a9fa14ba6bf4 100644 (file)
@@ -12,7 +12,6 @@ extern const struct rtw89_phy_table rtw89_8852b_phy_bb_gain_table;
 extern const struct rtw89_phy_table rtw89_8852b_phy_radioa_table;
 extern const struct rtw89_phy_table rtw89_8852b_phy_radiob_table;
 extern const struct rtw89_phy_table rtw89_8852b_phy_nctl_table;
-extern const struct rtw89_txpwr_table rtw89_8852b_byr_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8852b_trk_cfg;
 extern const struct rtw89_rfe_parms rtw89_8852b_dflt_parms;
 
index 4d88118f4f6edfc65960ad15bc1b910b8af975df..aaed74135af2141995f8e6ad5a3c24e0950d8fd2 100644 (file)
@@ -2845,7 +2845,6 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
                                   &rtw89_8852c_phy_radioa_table,},
        .nctl_table             = &rtw89_8852c_phy_nctl_table,
        .nctl_post_table        = NULL,
-       .byr_table              = &rtw89_8852c_byr_table,
        .dflt_parms             = &rtw89_8852c_dflt_parms,
        .rfe_parms_conf         = NULL,
        .chanctx_listener       = &rtw8852c_chanctx_listener,
index 3b393d17a08cffcf630d994bdd9645f1a1d2ff99..c42aa8778c4dac60dc6a167cc1f9d2165f2418da 100644 (file)
@@ -56426,6 +56426,7 @@ const struct rtw89_phy_table rtw89_8852c_phy_nctl_table = {
        .rf_path        = 0, /* don't care */
 };
 
+static
 const struct rtw89_txpwr_table rtw89_8852c_byr_table = {
        .data = rtw89_8852c_txpwr_byrate,
        .size = ARRAY_SIZE(rtw89_8852c_txpwr_byrate),
@@ -56462,6 +56463,7 @@ const struct rtw89_phy_tssi_dbw_table rtw89_8852c_tssi_dbw_table = {
 };
 
 const struct rtw89_rfe_parms rtw89_8852c_dflt_parms = {
+       .byr_tbl = &rtw89_8852c_byr_table,
        .rule_2ghz = {
                .lmt = &rtw89_8852c_txpwr_lmt_2g,
                .lmt_ru = &rtw89_8852c_txpwr_lmt_ru_2g,
index 4cff36dbf08701d31a3663b3be6bdcd1428a9412..7c9f3ecdc4e75e88d48f7cec37fbb31867b3078d 100644 (file)
@@ -12,7 +12,6 @@ extern const struct rtw89_phy_table rtw89_8852c_phy_bb_gain_table;
 extern const struct rtw89_phy_table rtw89_8852c_phy_radioa_table;
 extern const struct rtw89_phy_table rtw89_8852c_phy_radiob_table;
 extern const struct rtw89_phy_table rtw89_8852c_phy_nctl_table;
-extern const struct rtw89_txpwr_table rtw89_8852c_byr_table;
 extern const struct rtw89_phy_tssi_dbw_table rtw89_8852c_tssi_dbw_table;
 extern const struct rtw89_txpwr_track_cfg rtw89_8852c_trk_cfg;
 extern const struct rtw89_rfe_parms rtw89_8852c_dflt_parms;