mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 20:02:10 -04:00
wifi: rtw89: Make dle_mem in rtw89_chip_info an array
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
This commit is contained in:
committed by
Ping-Ke Shih
parent
4b6ea5a381
commit
ee47816f24
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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},
|
||||
|
||||
Reference in New Issue
Block a user