mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
wifi: rtw89: mac: consolidate quota into a struct for variant chips
RTL8922D has many variants, using different quota tables. Consolidate the quota data into a struct, and then select corresponding table for the chip variant. Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20260515014433.16168-13-pkshih@realtek.com
This commit is contained in:
parent
d270863883
commit
77be46f281
|
|
@ -4239,6 +4239,11 @@ struct rtw89_fw_def {
|
|||
u16 fw_b_aid;
|
||||
};
|
||||
|
||||
struct rtw89_qta_def {
|
||||
const struct rtw89_hfc_param_ini *hfc_param_ini[RTW89_HCI_DLE_TYPE_NUM];
|
||||
const struct rtw89_dle_mem *dle_mem[RTW89_HCI_DLE_TYPE_NUM];
|
||||
};
|
||||
|
||||
struct rtw89_phy_table {
|
||||
const struct rtw89_reg2_def *regs;
|
||||
u32 n_regs;
|
||||
|
|
@ -4654,8 +4659,7 @@ struct rtw89_chip_info {
|
|||
u16 max_rx_agg_num;
|
||||
bool dis_2g_40m_ul_ofdma;
|
||||
u32 rsvd_ple_ofst;
|
||||
const struct rtw89_hfc_param_ini *hfc_param_ini[RTW89_HCI_DLE_TYPE_NUM];
|
||||
const struct rtw89_dle_mem *dle_mem[RTW89_HCI_DLE_TYPE_NUM];
|
||||
struct rtw89_qta_def qta_def;
|
||||
u8 wde_qempty_acq_grpnum;
|
||||
u8 wde_qempty_mgq_grpsel;
|
||||
u32 rf_base_addr[2];
|
||||
|
|
@ -4784,6 +4788,7 @@ struct rtw89_chip_variant {
|
|||
bool no_mcs_12_13: 1;
|
||||
u32 fw_min_ver_code;
|
||||
const struct rtw89_fw_def *fw_def_override;
|
||||
const struct rtw89_qta_def *qta_def_override;
|
||||
};
|
||||
|
||||
union rtw89_bus_info {
|
||||
|
|
@ -7743,6 +7748,17 @@ const struct rtw89_fw_def *rtw89_chip_get_fw_def(struct rtw89_dev *rtwdev)
|
|||
return __rtw89_chip_get_fw_def(rtwdev->chip, rtwdev->variant);
|
||||
}
|
||||
|
||||
static inline
|
||||
const struct rtw89_qta_def *rtw89_chip_get_qta_def(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
const struct rtw89_chip_variant *variant = rtwdev->variant;
|
||||
|
||||
if (variant && variant->qta_def_override)
|
||||
return variant->qta_def_override;
|
||||
|
||||
return &rtwdev->chip->qta_def;
|
||||
}
|
||||
|
||||
static inline void rtw89_load_txpwr_table(struct rtw89_dev *rtwdev,
|
||||
const struct rtw89_txpwr_table *tbl)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -894,11 +894,12 @@ EXPORT_SYMBOL(rtw89_mac_set_err_status);
|
|||
|
||||
static int hfc_reset_param(struct rtw89_dev *rtwdev)
|
||||
{
|
||||
const struct rtw89_qta_def *qta_def = rtw89_chip_get_qta_def(rtwdev);
|
||||
const struct rtw89_hfc_param_ini *param_ini, *param_inis;
|
||||
struct rtw89_hfc_param *param = &rtwdev->mac.hfc_param;
|
||||
u8 qta_mode = rtwdev->mac.dle_info.qta_mode;
|
||||
|
||||
param_inis = rtwdev->chip->hfc_param_ini[rtwdev->hci.dle_type];
|
||||
param_inis = qta_def->hfc_param_ini[rtwdev->hci.dle_type];
|
||||
if (!param_inis)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
@ -1897,10 +1898,11 @@ EXPORT_SYMBOL(rtw89_mac_size);
|
|||
static const struct rtw89_dle_mem *get_dle_mem_cfg(struct rtw89_dev *rtwdev,
|
||||
enum rtw89_qta_mode mode)
|
||||
{
|
||||
const struct rtw89_qta_def *qta_def = rtw89_chip_get_qta_def(rtwdev);
|
||||
struct rtw89_mac_info *mac = &rtwdev->mac;
|
||||
const struct rtw89_dle_mem *cfg, *cfgs;
|
||||
|
||||
cfgs = rtwdev->chip->dle_mem[rtwdev->hci.dle_type];
|
||||
cfgs = qta_def->dle_mem[rtwdev->hci.dle_type];
|
||||
if (!cfgs)
|
||||
return NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -2648,14 +2648,16 @@ const struct rtw89_chip_info rtw8851b_chip_info = {
|
|||
.max_rx_agg_num = 64,
|
||||
.dis_2g_40m_ul_ofdma = true,
|
||||
.rsvd_ple_ofst = 0x2f800,
|
||||
.hfc_param_ini = {rtw8851b_hfc_param_ini_pcie,
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8851b_hfc_param_ini_pcie,
|
||||
rtw8851b_hfc_param_ini_usb,
|
||||
rtw8851b_hfc_param_ini_usb,
|
||||
NULL},
|
||||
.dle_mem = {rtw8851b_dle_mem_pcie,
|
||||
.dle_mem = {rtw8851b_dle_mem_pcie,
|
||||
rtw8851b_dle_mem_usb2,
|
||||
rtw8851b_dle_mem_usb3,
|
||||
NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 4,
|
||||
.wde_qempty_mgq_grpsel = 4,
|
||||
.rf_base_addr = {0xe000},
|
||||
|
|
|
|||
|
|
@ -2385,14 +2385,16 @@ const struct rtw89_chip_info rtw8852a_chip_info = {
|
|||
.max_rx_agg_num = 64,
|
||||
.dis_2g_40m_ul_ofdma = true,
|
||||
.rsvd_ple_ofst = 0x6f800,
|
||||
.hfc_param_ini = {rtw8852a_hfc_param_ini_pcie,
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8852a_hfc_param_ini_pcie,
|
||||
rtw8852a_hfc_param_ini_usb,
|
||||
rtw8852a_hfc_param_ini_usb,
|
||||
NULL},
|
||||
.dle_mem = {rtw8852a_dle_mem_pcie,
|
||||
.dle_mem = {rtw8852a_dle_mem_pcie,
|
||||
rtw8852a_dle_mem_usb,
|
||||
rtw8852a_dle_mem_usb,
|
||||
NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 16,
|
||||
.wde_qempty_mgq_grpsel = 16,
|
||||
.rf_base_addr = {0xc000, 0xd000},
|
||||
|
|
|
|||
|
|
@ -979,14 +979,16 @@ const struct rtw89_chip_info rtw8852b_chip_info = {
|
|||
.max_rx_agg_num = 64,
|
||||
.dis_2g_40m_ul_ofdma = true,
|
||||
.rsvd_ple_ofst = 0x2f800,
|
||||
.hfc_param_ini = {rtw8852b_hfc_param_ini_pcie,
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8852b_hfc_param_ini_pcie,
|
||||
rtw8852b_hfc_param_ini_usb,
|
||||
rtw8852b_hfc_param_ini_usb,
|
||||
NULL},
|
||||
.dle_mem = {rtw8852b_dle_mem_pcie,
|
||||
.dle_mem = {rtw8852b_dle_mem_pcie,
|
||||
rtw8852b_dle_mem_usb3,
|
||||
rtw8852b_dle_mem_usb3,
|
||||
NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 4,
|
||||
.wde_qempty_mgq_grpsel = 4,
|
||||
.rf_base_addr = {0xe000, 0xf000},
|
||||
|
|
|
|||
|
|
@ -825,8 +825,10 @@ const struct rtw89_chip_info rtw8852bt_chip_info = {
|
|||
.max_rx_agg_num = 64,
|
||||
.dis_2g_40m_ul_ofdma = true,
|
||||
.rsvd_ple_ofst = 0x6f800,
|
||||
.hfc_param_ini = {rtw8852bt_hfc_param_ini_pcie, NULL, NULL, NULL},
|
||||
.dle_mem = {rtw8852bt_dle_mem_pcie, NULL, NULL, NULL},
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8852bt_hfc_param_ini_pcie, NULL, NULL, NULL},
|
||||
.dle_mem = {rtw8852bt_dle_mem_pcie, NULL, NULL, NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 4,
|
||||
.wde_qempty_mgq_grpsel = 4,
|
||||
.rf_base_addr = {0xe000, 0xf000},
|
||||
|
|
|
|||
|
|
@ -3174,14 +3174,16 @@ const struct rtw89_chip_info rtw8852c_chip_info = {
|
|||
.max_rx_agg_num = 64,
|
||||
.dis_2g_40m_ul_ofdma = false,
|
||||
.rsvd_ple_ofst = 0x6f800,
|
||||
.hfc_param_ini = {rtw8852c_hfc_param_ini_pcie,
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8852c_hfc_param_ini_pcie,
|
||||
rtw8852c_hfc_param_ini_usb,
|
||||
rtw8852c_hfc_param_ini_usb,
|
||||
NULL},
|
||||
.dle_mem = {rtw8852c_dle_mem_pcie,
|
||||
.dle_mem = {rtw8852c_dle_mem_pcie,
|
||||
rtw8852c_dle_mem_usb2,
|
||||
rtw8852c_dle_mem_usb3,
|
||||
NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 16,
|
||||
.wde_qempty_mgq_grpsel = 16,
|
||||
.rf_base_addr = {0xe000, 0xf000},
|
||||
|
|
|
|||
|
|
@ -3169,14 +3169,16 @@ const struct rtw89_chip_info rtw8922a_chip_info = {
|
|||
.max_rx_agg_num = 64,
|
||||
.dis_2g_40m_ul_ofdma = false,
|
||||
.rsvd_ple_ofst = 0x8f800,
|
||||
.hfc_param_ini = {rtw8922a_hfc_param_ini_pcie,
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8922a_hfc_param_ini_pcie,
|
||||
rtw8922a_hfc_param_ini_usb2,
|
||||
rtw8922a_hfc_param_ini_usb3,
|
||||
NULL},
|
||||
.dle_mem = {rtw8922a_dle_mem_pcie,
|
||||
.dle_mem = {rtw8922a_dle_mem_pcie,
|
||||
rtw8922a_dle_mem_usb2,
|
||||
rtw8922a_dle_mem_usb3,
|
||||
NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 4,
|
||||
.wde_qempty_mgq_grpsel = 4,
|
||||
.rf_base_addr = {0xe000, 0xf000},
|
||||
|
|
@ -3307,6 +3309,7 @@ const struct rtw89_chip_variant rtw8922ae_vs_variant = {
|
|||
.no_mcs_12_13 = true,
|
||||
.fw_min_ver_code = RTW89_FW_VER_CODE(0, 35, 54, 0),
|
||||
.fw_def_override = NULL,
|
||||
.qta_def_override = NULL,
|
||||
};
|
||||
EXPORT_SYMBOL(rtw8922ae_vs_variant);
|
||||
|
||||
|
|
|
|||
|
|
@ -3171,8 +3171,10 @@ const struct rtw89_chip_info rtw8922d_chip_info = {
|
|||
.max_rx_agg_num = 256,
|
||||
.dis_2g_40m_ul_ofdma = false,
|
||||
.rsvd_ple_ofst = 0x5f800,
|
||||
.hfc_param_ini = {rtw8922d_hfc_param_ini_pcie, NULL, NULL, NULL},
|
||||
.dle_mem = {rtw8922d_dle_mem_pcie, NULL, NULL, NULL},
|
||||
.qta_def = {
|
||||
.hfc_param_ini = {rtw8922d_hfc_param_ini_pcie, NULL, NULL, NULL},
|
||||
.dle_mem = {rtw8922d_dle_mem_pcie, NULL, NULL, NULL},
|
||||
},
|
||||
.wde_qempty_acq_grpnum = 8,
|
||||
.wde_qempty_mgq_grpsel = 8,
|
||||
.rf_base_addr = {0x3e000, 0x3f000},
|
||||
|
|
@ -3308,6 +3310,7 @@ const struct rtw89_chip_variant rtw8922de_vs_variant = {
|
|||
.no_mcs_12_13 = true,
|
||||
.fw_min_ver_code = RTW89_FW_VER_CODE(0, 0, 0, 0),
|
||||
.fw_def_override = &rtw8922de_vs_fw_def,
|
||||
.qta_def_override = NULL,
|
||||
};
|
||||
EXPORT_SYMBOL(rtw8922de_vs_variant);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user