]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: Make dle_mem in rtw89_chip_info an array
authorBitterblue Smith <rtl8821cerfe2@gmail.com>
Mon, 30 Jun 2025 20:41:34 +0000 (23:41 +0300)
committerPing-Ke Shih <pkshih@realtek.com>
Fri, 4 Jul 2025 02:39:24 +0000 (10:39 +0800)
USB 2, USB 3, and SDIO will need different sets of values compared to
PCIe.

Add a new dle_type member in struct rtw89_hci_info and make dle_mem in
struct rtw89_chip_info an array to hold the four different sets of
values.

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/c9152735-dbc4-4473-ae29-a79625cfbf78@gmail.com
drivers/net/wireless/realtek/rtw89/core.h
drivers/net/wireless/realtek/rtw89/mac.c
drivers/net/wireless/realtek/rtw89/pci.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 a72cd6e13de2ee7a77913ad172f6204204ae1ac3..bf32b4eb41dd5cc25bcc7e213714d7e03ca56b4e 100644 (file)
@@ -132,6 +132,15 @@ enum rtw89_hci_type {
        RTW89_HCI_TYPE_SDIO,
 };
 
+enum rtw89_hci_dle_type {
+       RTW89_HCI_DLE_TYPE_PCIE,
+       RTW89_HCI_DLE_TYPE_USB2,
+       RTW89_HCI_DLE_TYPE_USB3,
+       RTW89_HCI_DLE_TYPE_SDIO,
+
+       RTW89_HCI_DLE_TYPE_NUM,
+};
+
 enum rtw89_core_chip_id {
        RTL8852A,
        RTL8852B,
@@ -3660,6 +3669,7 @@ struct rtw89_hci_ops {
 struct rtw89_hci_info {
        const struct rtw89_hci_ops *ops;
        enum rtw89_hci_type type;
+       enum rtw89_hci_dle_type dle_type;
        u32 rpwm_addr;
        u32 cpwm_addr;
        bool paused;
@@ -4359,7 +4369,7 @@ struct rtw89_chip_info {
        bool dis_2g_40m_ul_ofdma;
        u32 rsvd_ple_ofst;
        const struct rtw89_hfc_param_ini *hfc_param_ini;
-       const struct rtw89_dle_mem *dle_mem;
+       const struct rtw89_dle_mem *dle_mem[RTW89_HCI_DLE_TYPE_NUM];
        u8 wde_qempty_acq_grpnum;
        u8 wde_qempty_mgq_grpsel;
        u32 rf_base_addr[2];
index 53628838a7c550e42672adfd4f543263b0f7cc4e..8e7ce45207daff631a47ebde32e35c67075c52c0 100644 (file)
@@ -1717,12 +1717,13 @@ static const struct rtw89_dle_mem *get_dle_mem_cfg(struct rtw89_dev *rtwdev,
                                                   enum rtw89_qta_mode mode)
 {
        struct rtw89_mac_info *mac = &rtwdev->mac;
-       const struct rtw89_dle_mem *cfg;
+       const struct rtw89_dle_mem *cfg, *cfgs;
 
-       cfg = &rtwdev->chip->dle_mem[mode];
-       if (!cfg)
+       cfgs = rtwdev->chip->dle_mem[rtwdev->hci.dle_type];
+       if (!cfgs)
                return NULL;
 
+       cfg = &cfgs[mode];
        if (cfg->mode != mode) {
                rtw89_warn(rtwdev, "qta mode unmatch!\n");
                return NULL;
index 204a3748d913541c8f1e68f0662219c4d927ce17..597de632e364352ca4b7aaf54ac7040f995170cf 100644 (file)
@@ -4486,6 +4486,7 @@ int rtw89_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        rtwdev->pci_info = info->bus.pci;
        rtwdev->hci.ops = &rtw89_pci_ops;
        rtwdev->hci.type = RTW89_HCI_TYPE_PCIE;
+       rtwdev->hci.dle_type = RTW89_HCI_DLE_TYPE_PCIE;
        rtwdev->hci.rpwm_addr = pci_info->rpwm_addr;
        rtwdev->hci.cpwm_addr = pci_info->cpwm_addr;
 
index 11584ef6ef48175b42166d14ce4d444c835a6ff0..daec656341af6d42736fa559443956527b6a68af 100644 (file)
@@ -2509,7 +2509,7 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x2f800,
        .hfc_param_ini          = rtw8851b_hfc_param_ini_pcie,
-       .dle_mem                = rtw8851b_dle_mem_pcie,
+       .dle_mem                = {rtw8851b_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
        .rf_base_addr           = {0xe000},
index 080636e8d0c31970b17f7906881e62d50919fa0b..8bf222bdb92717aea5508d38f9f0a96b16325942 100644 (file)
@@ -2185,7 +2185,7 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x6f800,
        .hfc_param_ini          = rtw8852a_hfc_param_ini_pcie,
-       .dle_mem                = rtw8852a_dle_mem_pcie,
+       .dle_mem                = {rtw8852a_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 16,
        .wde_qempty_mgq_grpsel  = 16,
        .rf_base_addr           = {0xc000, 0xd000},
index c0bf80450acfae4bb4c8749bf8360de280d66c66..a6faae0d031a4df1ad8b4a6ab9ff2b7b745c5a93 100644 (file)
@@ -821,7 +821,7 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x2f800,
        .hfc_param_ini          = rtw8852b_hfc_param_ini_pcie,
-       .dle_mem                = rtw8852b_dle_mem_pcie,
+       .dle_mem                = {rtw8852b_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
        .rf_base_addr           = {0xe000, 0xf000},
index 95e088734423641430df0ba96b4619ed4a5a26ec..f536181bfb6692ce153d9341196ead42265699dd 100644 (file)
@@ -755,7 +755,7 @@ const struct rtw89_chip_info rtw8852bt_chip_info = {
        .dis_2g_40m_ul_ofdma    = true,
        .rsvd_ple_ofst          = 0x6f800,
        .hfc_param_ini          = rtw8852bt_hfc_param_ini_pcie,
-       .dle_mem                = rtw8852bt_dle_mem_pcie,
+       .dle_mem                = {rtw8852bt_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
        .rf_base_addr           = {0xe000, 0xf000},
index 8f3d0c91a3f8d7e5f20a15ae8cef18265d1ddc62..67db480940b3466ed085d666b080e2c5166a665d 100644 (file)
@@ -3005,7 +3005,7 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
        .dis_2g_40m_ul_ofdma    = false,
        .rsvd_ple_ofst          = 0x6f800,
        .hfc_param_ini          = rtw8852c_hfc_param_ini_pcie,
-       .dle_mem                = rtw8852c_dle_mem_pcie,
+       .dle_mem                = {rtw8852c_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 16,
        .wde_qempty_mgq_grpsel  = 16,
        .rf_base_addr           = {0xe000, 0xf000},
index 603212ed45589e9618b51adf1d33fe7fded5868e..09dbe4008b895a18563ef12fa419fb62b94e69a4 100644 (file)
@@ -2860,7 +2860,7 @@ const struct rtw89_chip_info rtw8922a_chip_info = {
        .dis_2g_40m_ul_ofdma    = false,
        .rsvd_ple_ofst          = 0x8f800,
        .hfc_param_ini          = rtw8922a_hfc_param_ini_pcie,
-       .dle_mem                = rtw8922a_dle_mem_pcie,
+       .dle_mem                = {rtw8922a_dle_mem_pcie, NULL, NULL, NULL},
        .wde_qempty_acq_grpnum  = 4,
        .wde_qempty_mgq_grpsel  = 4,
        .rf_base_addr           = {0xe000, 0xf000},