]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: Make hfc_param_ini in rtw89_chip_info an array
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Mon, 30 Jun 2025 20:42:01 +0000 (23:42 +0300)
committerPing-Ke Shih <pkshih@realtek.com>
Fri, 4 Jul 2025 02:40:48 +0000 (10:40 +0800)
USB and SDIO will need different sets of values, so make hfc_param_ini
in struct rtw89_chip_info an array.

Also make param_ini a pointer instead of copying the struct.

Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Acked-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/1356f901-9ebf-451e-827f-50dd3efda534@gmail.com
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/mac.c
drivers/net/wireless/realtek/rtw89/rtw8851b.c
drivers/net/wireless/realtek/rtw89/rtw8852a.c
drivers/net/wireless/realtek/rtw89/rtw8852b.c
drivers/net/wireless/realtek/rtw89/rtw8852bt.c
drivers/net/wireless/realtek/rtw89/rtw8852c.c
drivers/net/wireless/realtek/rtw89/rtw8922a.c

index bf32b4eb41dd5cc25bcc7e213714d7e03ca56b4e..3057ab3d2e7d56a24c09965f422e2f9da68401d2 100644 (file)
@@ -130,6 +130,8 @@ enum rtw89_hci_type {
        RTW89_HCI_TYPE_PCIE,
        RTW89_HCI_TYPE_USB,
        RTW89_HCI_TYPE_SDIO,
+
+       RTW89_HCI_TYPE_NUM,
 };
 
 enum rtw89_hci_dle_type {
@@ -4368,7 +4370,7 @@ struct rtw89_chip_info {
        u16 max_amsdu_limit;
        bool dis_2g_40m_ul_ofdma;
        u32 rsvd_ple_ofst;
-       const struct rtw89_hfc_param_ini *hfc_param_ini;
+       const struct rtw89_hfc_param_ini *hfc_param_ini[RTW89_HCI_TYPE_NUM];
        const struct rtw89_dle_mem *dle_mem[RTW89_HCI_DLE_TYPE_NUM];
        u8 wde_qempty_acq_grpnum;
        u8 wde_qempty_mgq_grpsel;
index 8e7ce45207daff631a47ebde32e35c67075c52c0..4432b03e8f7afc12a300e074a1275d46ded5ebcb 100644 (file)
@@ -875,31 +875,30 @@ EXPORT_SYMBOL(rtw89_mac_set_err_status);
 
 static int hfc_reset_param(struct rtw89_dev *rtwdev)
 {
+       const struct rtw89_hfc_param_ini *param_ini, *param_inis;
        struct rtw89_hfc_param *param = &rtwdev->mac.hfc_param;
-       struct rtw89_hfc_param_ini param_ini = {NULL};
        u8 qta_mode = rtwdev->mac.dle_info.qta_mode;
 
-       switch (rtwdev->hci.type) {
-       case RTW89_HCI_TYPE_PCIE:
-               param_ini = rtwdev->chip->hfc_param_ini[qta_mode];
-               param->en = 0;
-               break;
-       default:
+       param_inis = rtwdev->chip->hfc_param_ini[rtwdev->hci.type];
+       if (!param_inis)
                return -EINVAL;
-       }
 
-       if (param_ini.pub_cfg)
-               param->pub_cfg = *param_ini.pub_cfg;
+       param_ini = &param_inis[qta_mode];
+
+       param->en = 0;
+
+       if (param_ini->pub_cfg)
+               param->pub_cfg = *param_ini->pub_cfg;
 
-       if (param_ini.prec_cfg)
-               param->prec_cfg = *param_ini.prec_cfg;
+       if (param_ini->prec_cfg)
+               param->prec_cfg = *param_ini->prec_cfg;
 
-       if (param_ini.ch_cfg)
-               param->ch_cfg = param_ini.ch_cfg;
+       if (param_ini->ch_cfg)
+               param->ch_cfg = param_ini->ch_cfg;
 
        memset(&param->ch_info, 0, sizeof(param->ch_info));
        memset(&param->pub_info, 0, sizeof(param->pub_info));
-       param->mode = param_ini.mode;
+       param->mode = param_ini->mode;
 
        return 0;
 }
index daec656341af6d42736fa559443956527b6a68af..b678edb00c03b1da206317f89f32b0611c333b58 100644 (file)
@@ -2508,7 +2508,7 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
        .max_amsdu_limit        = 3500,
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x2f800,
-       .hfc_param_ini          = rtw8851b_hfc_param_ini_pcie,
+       .hfc_param_ini          = {rtw8851b_hfc_param_ini_pcie, NULL, NULL},
        .dle_mem                = {rtw8851b_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
index 8bf222bdb92717aea5508d38f9f0a96b16325942..0496deb7278fd8f87cfb93a2bf1df8edbd992af8 100644 (file)
@@ -2184,7 +2184,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
        .max_amsdu_limit        = 3500,
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x6f800,
-       .hfc_param_ini          = rtw8852a_hfc_param_ini_pcie,
+       .hfc_param_ini          = {rtw8852a_hfc_param_ini_pcie, NULL, NULL},
        .dle_mem                = {rtw8852a_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 16,
        .wde_qempty_mgq_grpsel  = 16,
index a6faae0d031a4df1ad8b4a6ab9ff2b7b745c5a93..b0b73a4a70a076b74df1f84fb2a58a72f87d4df7 100644 (file)
@@ -820,7 +820,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
        .max_amsdu_limit        = 5000,
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x2f800,
-       .hfc_param_ini          = rtw8852b_hfc_param_ini_pcie,
+       .hfc_param_ini          = {rtw8852b_hfc_param_ini_pcie, NULL, NULL},
        .dle_mem                = {rtw8852b_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
index f536181bfb6692ce153d9341196ead42265699dd..10d09c12f318b8a81d8bbf871897375f90d5c10a 100644 (file)
@@ -754,7 +754,7 @@ const struct rtw89_chip_info rtw8852bt_chip_info = {
        .max_amsdu_limit        = 5000,
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x6f800,
-       .hfc_param_ini          = rtw8852bt_hfc_param_ini_pcie,
+       .hfc_param_ini          = {rtw8852bt_hfc_param_ini_pcie, NULL, NULL},
        .dle_mem                = {rtw8852bt_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
index 67db480940b3466ed085d666b080e2c5166a665d..6e27f1ff94dc33080d881c0dbf0cb3cda2481ca0 100644 (file)
@@ -3004,7 +3004,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
        .max_amsdu_limit        = 8000,
        .dis_2g_40m_ul_ofdma    = false,
        .rsvd_ple_ofst          = 0x6f800,
-       .hfc_param_ini          = rtw8852c_hfc_param_ini_pcie,
+       .hfc_param_ini          = {rtw8852c_hfc_param_ini_pcie, NULL, NULL},
        .dle_mem                = {rtw8852c_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 16,
        .wde_qempty_mgq_grpsel  = 16,
index 09dbe4008b895a18563ef12fa419fb62b94e69a4..e23655f3e4c102bea9c4652963571bb4a2a1aca5 100644 (file)
@@ -2859,7 +2859,7 @@ const struct rtw89_chip_info rtw8922a_chip_info = {
        .max_amsdu_limit        = 8000,
        .dis_2g_40m_ul_ofdma    = false,
        .rsvd_ple_ofst          = 0x8f800,
-       .hfc_param_ini          = rtw8922a_hfc_param_ini_pcie,
+       .hfc_param_ini          = {rtw8922a_hfc_param_ini_pcie, NULL, NULL},
        .dle_mem                = {rtw8922a_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,