]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: rtw89: pci: add RPP parser v1
authorPing-Ke Shih <pkshih@realtek.com>
Tue, 26 Aug 2025 08:53:32 +0000 (16:53 +0800)
committerPing-Ke Shih <pkshih@realtek.com>
Mon, 1 Sep 2025 02:54:41 +0000 (10:54 +0800)
The new format contains more information including TX DMA channel, actual
TX link and etc.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20250826085332.28463-1-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/pci.c
drivers/net/wireless/realtek/rtw89/pci.h

index cc54694859a6bf46e225fdef60b5fcda88c92bd0..1316671cb31bb0e2c2228da58c16f9d5ca526d0e 100644 (file)
@@ -580,6 +580,18 @@ void rtw89_pci_parse_rpp(struct rtw89_dev *rtwdev, void *_rpp,
 }
 EXPORT_SYMBOL(rtw89_pci_parse_rpp);
 
+void rtw89_pci_parse_rpp_v1(struct rtw89_dev *rtwdev, void *_rpp,
+                           struct rtw89_pci_rpp_info *rpp_info)
+{
+       const struct rtw89_pci_rpp_fmt_v1 *rpp = _rpp;
+
+       rpp_info->seq = le32_get_bits(rpp->w0, RTW89_PCI_RPP_W0_PCIE_SEQ_V1_MASK);
+       rpp_info->qsel = le32_get_bits(rpp->w1, RTW89_PCI_RPP_W1_QSEL_V1_MASK);
+       rpp_info->tx_status = le32_get_bits(rpp->w0, RTW89_PCI_RPP_W0_TX_STATUS_V1_MASK);
+       rpp_info->txch = le32_get_bits(rpp->w0, RTW89_PCI_RPP_W0_DMA_CH_MASK);
+}
+EXPORT_SYMBOL(rtw89_pci_parse_rpp_v1);
+
 static void rtw89_pci_release_rpp(struct rtw89_dev *rtwdev, void *rpp)
 {
        struct rtw89_pci *rtwpci = (struct rtw89_pci *)rtwdev->priv;
index b0c6f4d38bf58c78ccf210762c20c9e309424d8e..fc8268eb44db5361f570473135b50d5edeb65612 100644 (file)
@@ -1498,6 +1498,19 @@ struct rtw89_pci_rpp_fmt {
        __le32 dword;
 } __packed;
 
+#define RTW89_PCI_RPP_W0_MACID_V1_MASK         GENMASK(9, 0)
+#define RTW89_PCI_RPP_W0_DMA_CH_MASK           GENMASK(13, 10)
+#define RTW89_PCI_RPP_W0_TX_STATUS_V1_MASK     GENMASK(16, 14)
+#define RTW89_PCI_RPP_W0_PCIE_SEQ_V1_MASK      GENMASK(31, 17)
+#define RTW89_PCI_RPP_W1_QSEL_V1_MASK          GENMASK(5, 0)
+#define RTW89_PCI_RPP_W1_TID_IND               BIT(6)
+#define RTW89_PCI_RPP_W1_CHANGE_LINK           BIT(7)
+
+struct rtw89_pci_rpp_fmt_v1 {
+       __le32 w0;
+       __le32 w1;
+} __packed;
+
 struct rtw89_pci_rx_bd_32 {
        __le16 buf_size;
        __le16 opt;
@@ -1736,6 +1749,8 @@ u32 rtw89_pci_fill_txaddr_info_v1(struct rtw89_dev *rtwdev,
                                  dma_addr_t dma, u8 *add_info_nr);
 void rtw89_pci_parse_rpp(struct rtw89_dev *rtwdev, void *_rpp,
                         struct rtw89_pci_rpp_info *rpp_info);
+void rtw89_pci_parse_rpp_v1(struct rtw89_dev *rtwdev, void *_rpp,
+                           struct rtw89_pci_rpp_info *rpp_info);
 void rtw89_pci_ctrl_dma_all(struct rtw89_dev *rtwdev, bool enable);
 void rtw89_pci_config_intr_mask(struct rtw89_dev *rtwdev);
 void rtw89_pci_config_intr_mask_v1(struct rtw89_dev *rtwdev);