Skip to content

Commit bfdcfee

Browse files
Ping-Ke ShihKalle Valo
authored andcommitted
wifi: rtw89: pci: use gen_def pointer to configure mac_{pre,post}_init and clear PCI ring index
Use gen_def pointer to call three WiFi 6 specific functions, and add _ax suffix to them. Then, we will implement functions for WiFi 7 chips later. The mac_{pre,post}_init are used to initialize PCI during doing MAC initialization, and clear PCI ring index to make index consistent between driver, firmware and hardware. Signed-off-by: Ping-Ke Shih <[email protected]> Signed-off-by: Kalle Valo <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 07fabde commit bfdcfee

File tree

2 files changed

+35
-3
lines changed

2 files changed

+35
-3
lines changed

drivers/net/wireless/realtek/rtw89/pci.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2361,7 +2361,7 @@ static void rtw89_pci_set_keep_reg(struct rtw89_dev *rtwdev)
23612361
B_AX_PCIE_TXRST_KEEP_REG | B_AX_PCIE_RXRST_KEEP_REG);
23622362
}
23632363

2364-
static void rtw89_pci_clr_idx_all(struct rtw89_dev *rtwdev)
2364+
static void rtw89_pci_clr_idx_all_ax(struct rtw89_dev *rtwdev)
23652365
{
23662366
const struct rtw89_pci_info *info = rtwdev->pci_info;
23672367
enum rtw89_core_chip_id chip_id = rtwdev->chip->chip_id;
@@ -2549,7 +2549,7 @@ static int rtw89_pci_ops_deinit(struct rtw89_dev *rtwdev)
25492549
return 0;
25502550
}
25512551

2552-
static int rtw89_pci_ops_mac_pre_init(struct rtw89_dev *rtwdev)
2552+
static int rtw89_pci_ops_mac_pre_init_ax(struct rtw89_dev *rtwdev)
25532553
{
25542554
const struct rtw89_pci_info *info = rtwdev->pci_info;
25552555
int ret;
@@ -2706,7 +2706,7 @@ int rtw89_pci_ltr_set_v1(struct rtw89_dev *rtwdev, bool en)
27062706
}
27072707
EXPORT_SYMBOL(rtw89_pci_ltr_set_v1);
27082708

2709-
static int rtw89_pci_ops_mac_post_init(struct rtw89_dev *rtwdev)
2709+
static int rtw89_pci_ops_mac_post_init_ax(struct rtw89_dev *rtwdev)
27102710
{
27112711
const struct rtw89_pci_info *info = rtwdev->pci_info;
27122712
enum rtw89_core_chip_id chip_id = rtwdev->chip->chip_id;
@@ -3854,6 +3854,10 @@ SIMPLE_DEV_PM_OPS(rtw89_pm_ops, rtw89_pci_suspend, rtw89_pci_resume);
38543854
EXPORT_SYMBOL(rtw89_pm_ops);
38553855

38563856
const struct rtw89_pci_gen_def rtw89_pci_gen_ax = {
3857+
.mac_pre_init = rtw89_pci_ops_mac_pre_init_ax,
3858+
.mac_post_init = rtw89_pci_ops_mac_post_init_ax,
3859+
3860+
.clr_idx_all = rtw89_pci_clr_idx_all_ax,
38573861
};
38583862
EXPORT_SYMBOL(rtw89_pci_gen_ax);
38593863

drivers/net/wireless/realtek/rtw89/pci.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -923,6 +923,10 @@ struct rtw89_pci_bd_ram {
923923
};
924924

925925
struct rtw89_pci_gen_def {
926+
int (*mac_pre_init)(struct rtw89_dev *rtwdev);
927+
int (*mac_post_init)(struct rtw89_dev *rtwdev);
928+
929+
void (*clr_idx_all)(struct rtw89_dev *rtwdev);
926930
};
927931

928932
struct rtw89_pci_info {
@@ -1331,4 +1335,28 @@ void rtw89_chip_recognize_intrs(struct rtw89_dev *rtwdev,
13311335
info->recognize_intrs(rtwdev, rtwpci, isrs);
13321336
}
13331337

1338+
static inline int rtw89_pci_ops_mac_pre_init(struct rtw89_dev *rtwdev)
1339+
{
1340+
const struct rtw89_pci_info *info = rtwdev->pci_info;
1341+
const struct rtw89_pci_gen_def *gen_def = info->gen_def;
1342+
1343+
return gen_def->mac_pre_init(rtwdev);
1344+
}
1345+
1346+
static inline int rtw89_pci_ops_mac_post_init(struct rtw89_dev *rtwdev)
1347+
{
1348+
const struct rtw89_pci_info *info = rtwdev->pci_info;
1349+
const struct rtw89_pci_gen_def *gen_def = info->gen_def;
1350+
1351+
return gen_def->mac_post_init(rtwdev);
1352+
}
1353+
1354+
static inline void rtw89_pci_clr_idx_all(struct rtw89_dev *rtwdev)
1355+
{
1356+
const struct rtw89_pci_info *info = rtwdev->pci_info;
1357+
const struct rtw89_pci_gen_def *gen_def = info->gen_def;
1358+
1359+
gen_def->clr_idx_all(rtwdev);
1360+
}
1361+
13341362
#endif

0 commit comments

Comments
 (0)