]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf/dwc_pcie: Move common DWC struct definitions to 'pcie-dwc.h'
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Fri, 21 Feb 2025 13:15:44 +0000 (18:45 +0530)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Mon, 3 Mar 2025 20:02:19 +0000 (20:02 +0000)
Move the common DWC struct definitions, which are shared across all the
DesginWare PCIe IPs, to a new header file called 'pcie-dwc.h', so that
other users e.g., debugfs, perf and sysfs can make use of them.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Shradha Todi <shradha.t@samsung.com>
Reviewed-by: Shuai Xue <xueshuai@linux.alibaba.com>
Reviewed-by: Fan Ni <fan.ni@samsung.com>
Tested-by: Hrishikesh Deleep <hrishikesh.d@samsung.com>
Link: https://lore.kernel.org/r/20250221131548.59616-2-shradha.t@samsung.com
[kwilczynski: commit log, tidy up the new header file]
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
MAINTAINERS
drivers/perf/dwc_pcie_pmu.c
include/linux/pcie-dwc.h [new file with mode: 0644]

index 896a307fa06545e2861abe46ea7029f9b4d3628e..b4d09d52a750b320f689c1365791cdfa6e719fde 100644 (file)
@@ -18123,6 +18123,7 @@ S:      Maintained
 F:     Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml
 F:     Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml
 F:     drivers/pci/controller/dwc/*designware*
+F:     include/linux/pcie-dwc.h
 
 PCI DRIVER FOR TI DRA7XX/J721E
 M:     Vignesh Raghavendra <vigneshr@ti.com>
index cccecae9823f6aa6bb98e438713a1386b7f055d9..da30f2c2d67462c8c39667c81eef8a2fc906710c 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/errno.h>
 #include <linux/kernel.h>
 #include <linux/list.h>
+#include <linux/pcie-dwc.h>
 #include <linux/perf_event.h>
 #include <linux/pci.h>
 #include <linux/platform_device.h>
@@ -99,26 +100,6 @@ struct dwc_pcie_dev_info {
        struct list_head dev_node;
 };
 
-struct dwc_pcie_pmu_vsec_id {
-       u16 vendor_id;
-       u16 vsec_id;
-       u8 vsec_rev;
-};
-
-/*
- * VSEC IDs are allocated by the vendor, so a given ID may mean different
- * things to different vendors.  See PCIe r6.0, sec 7.9.5.2.
- */
-static const struct dwc_pcie_pmu_vsec_id dwc_pcie_pmu_vsec_ids[] = {
-       { .vendor_id = PCI_VENDOR_ID_ALIBABA,
-         .vsec_id = 0x02, .vsec_rev = 0x4 },
-       { .vendor_id = PCI_VENDOR_ID_AMPERE,
-         .vsec_id = 0x02, .vsec_rev = 0x4 },
-       { .vendor_id = PCI_VENDOR_ID_QCOM,
-         .vsec_id = 0x02, .vsec_rev = 0x4 },
-       {} /* terminator */
-};
-
 static ssize_t cpumask_show(struct device *dev,
                                         struct device_attribute *attr,
                                         char *buf)
@@ -529,14 +510,14 @@ static void dwc_pcie_unregister_pmu(void *data)
 
 static u16 dwc_pcie_des_cap(struct pci_dev *pdev)
 {
-       const struct dwc_pcie_pmu_vsec_id *vid;
+       const struct dwc_pcie_vsec_id *vid;
        u16 vsec;
        u32 val;
 
        if (!pci_is_pcie(pdev) || !(pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT))
                return 0;
 
-       for (vid = dwc_pcie_pmu_vsec_ids; vid->vendor_id; vid++) {
+       for (vid = dwc_pcie_rasdes_vsec_ids; vid->vendor_id; vid++) {
                vsec = pci_find_vsec_capability(pdev, vid->vendor_id,
                                                vid->vsec_id);
                if (vsec) {
diff --git a/include/linux/pcie-dwc.h b/include/linux/pcie-dwc.h
new file mode 100644 (file)
index 0000000..6e4e130
--- /dev/null
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2021-2023 Alibaba Inc.
+ * Copyright (C) 2025 Linaro Ltd.
+ *
+ * Author: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
+ */
+
+#ifndef LINUX_PCIE_DWC_H
+#define LINUX_PCIE_DWC_H
+
+#include <linux/pci_ids.h>
+
+struct dwc_pcie_vsec_id {
+       u16 vendor_id;
+       u16 vsec_id;
+       u8 vsec_rev;
+};
+
+/*
+ * VSEC IDs are allocated by the vendor, so a given ID may mean different
+ * things to different vendors.  See PCIe r6.0, sec 7.9.5.2.
+ */
+static const struct dwc_pcie_vsec_id dwc_pcie_rasdes_vsec_ids[] = {
+       { .vendor_id = PCI_VENDOR_ID_ALIBABA,
+         .vsec_id = 0x02, .vsec_rev = 0x4 },
+       { .vendor_id = PCI_VENDOR_ID_AMPERE,
+         .vsec_id = 0x02, .vsec_rev = 0x4 },
+       { .vendor_id = PCI_VENDOR_ID_QCOM,
+         .vsec_id = 0x02, .vsec_rev = 0x4 },
+       {}
+};
+
+#endif /* LINUX_PCIE_DWC_H */