wifi: rtw89: pci: add PCI generation information to pci_info for each chip
authorPing-Ke Shih <pkshih@realtek.com>
Wed, 1 Nov 2023 07:21:45 +0000 (15:21 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 8 Nov 2023 18:08:58 +0000 (20:08 +0200)
In order to reuse PCI initial and configuration flows, add struct
rtw89_pci_gen_def to abstract the differences between WiFi 6/7 generations.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20231101072149.21997-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/pci.c
drivers/net/wireless/realtek/rtw89/pci.h
drivers/net/wireless/realtek/rtw89/pci_be.c [new file with mode: 0644]
drivers/net/wireless/realtek/rtw89/rtw8851be.c
drivers/net/wireless/realtek/rtw89/rtw8852ae.c
drivers/net/wireless/realtek/rtw89/rtw8852be.c
drivers/net/wireless/realtek/rtw89/rtw8852ce.c
drivers/net/wireless/realtek/rtw89/rtw8922ae.c

index b2de5280d93425d89cd65a4cbc86a83f5fea7dc8..411e9c2706383c017ab84bfbd4092d3d20980dc7 100644 (file)
@@ -3853,6 +3853,10 @@ static int __maybe_unused rtw89_pci_resume(struct device *dev)
 SIMPLE_DEV_PM_OPS(rtw89_pm_ops, rtw89_pci_suspend, rtw89_pci_resume);
 EXPORT_SYMBOL(rtw89_pm_ops);
 
+const struct rtw89_pci_gen_def rtw89_pci_gen_ax = {
+};
+EXPORT_SYMBOL(rtw89_pci_gen_ax);
+
 static const struct rtw89_hci_ops rtw89_pci_ops = {
        .tx_write       = rtw89_pci_ops_tx_write,
        .tx_kick_off    = rtw89_pci_ops_tx_kick_off,
index fe1019ae5e5b9d396a4aead0d8abb073dc1daddc..f4662c7057eea718a28edb15c8bfbb5fcd011a09 100644 (file)
@@ -922,7 +922,11 @@ struct rtw89_pci_bd_ram {
        u8 min_num;
 };
 
+struct rtw89_pci_gen_def {
+};
+
 struct rtw89_pci_info {
+       const struct rtw89_pci_gen_def *gen_def;
        enum mac_ax_bd_trunc_mode txbd_trunc_mode;
        enum mac_ax_bd_trunc_mode rxbd_trunc_mode;
        enum mac_ax_rxbd_mode rxbd_mode;
@@ -1229,6 +1233,8 @@ extern const struct rtw89_pci_ch_dma_addr_set rtw89_pci_ch_dma_addr_set_v1;
 extern const struct rtw89_pci_ch_dma_addr_set rtw89_pci_ch_dma_addr_set_be;
 extern const struct rtw89_pci_bd_ram rtw89_bd_ram_table_dual[RTW89_TXCH_NUM];
 extern const struct rtw89_pci_bd_ram rtw89_bd_ram_table_single[RTW89_TXCH_NUM];
+extern const struct rtw89_pci_gen_def rtw89_pci_gen_ax;
+extern const struct rtw89_pci_gen_def rtw89_pci_gen_be;
 
 struct pci_device_id;
 
diff --git a/drivers/net/wireless/realtek/rtw89/pci_be.c b/drivers/net/wireless/realtek/rtw89/pci_be.c
new file mode 100644 (file)
index 0000000..17dcf32
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/* Copyright(c) 2023  Realtek Corporation
+ */
+
+#include <linux/pci.h>
+
+#include "pci.h"
+#include "reg.h"
+
+const struct rtw89_pci_gen_def rtw89_pci_gen_be = {
+};
+EXPORT_SYMBOL(rtw89_pci_gen_be);
index 3b299778119af9a9e8c4bc62818a03e965df49cb..6858fd7600135c012209c68356e6b551c6545813 100644 (file)
@@ -10,6 +10,7 @@
 #include "rtw8851b.h"
 
 static const struct rtw89_pci_info rtw8851b_pci_info = {
+       .gen_def                = &rtw89_pci_gen_ax,
        .txbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_mode              = MAC_AX_RXBD_PKT,
index a40e87405dc8bfab458b3aeae86a30b1e3b43b76..f539f4602c0271751663fe62505d73cfc507b480 100644 (file)
@@ -10,6 +10,7 @@
 #include "rtw8852a.h"
 
 static const struct rtw89_pci_info rtw8852a_pci_info = {
+       .gen_def                = &rtw89_pci_gen_ax,
        .txbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_mode              = MAC_AX_RXBD_PKT,
index 9500ff9bb4aac3e826065f4ff79760dbc998b873..b9bbb6e9b4ff4c6257442c0c6e63f726cc2de41b 100644 (file)
@@ -10,6 +10,7 @@
 #include "rtw8852b.h"
 
 static const struct rtw89_pci_info rtw8852b_pci_info = {
+       .gen_def                = &rtw89_pci_gen_ax,
        .txbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_mode              = MAC_AX_RXBD_PKT,
index 5c84589fd50e1ec956543bc92d26fcdfe1914850..f6bf35342719fe466715a97040f3705f67f91922 100644 (file)
@@ -19,6 +19,7 @@ static const struct rtw89_pci_bd_idx_addr rtw8852c_bd_idx_addr_low_power = {
 };
 
 static const struct rtw89_pci_info rtw8852c_pci_info = {
+       .gen_def                = &rtw89_pci_gen_ax,
        .txbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_mode              = MAC_AX_RXBD_PKT,
index e55f25bafc6e7baf548d359a273a8dae665bdd01..8ea5261b9ee4209ae6da634229395afaf240bd60 100644 (file)
@@ -9,6 +9,7 @@
 #include "reg.h"
 
 static const struct rtw89_pci_info rtw8922a_pci_info = {
+       .gen_def                = &rtw89_pci_gen_be,
        .txbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_trunc_mode        = MAC_AX_BD_TRUNC,
        .rxbd_mode              = MAC_AX_RXBD_PKT,