PCI: xilinx-cpm: Move IRQ definitions to a common header
authorThippeswamy Havalige <thippeswamy.havalige@amd.com>
Tue, 3 Oct 2023 17:34:51 +0000 (23:04 +0530)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Thu, 26 Oct 2023 14:10:42 +0000 (14:10 +0000)
Move the interrupt bit definitions to the pcie-xilinx-common.h file,
which then can be shared between pcie-xilinx-cpm and the new xilinx-xdma
drivers.

While at it, also rename them so these definitions are not CPM-specific.

No functional change intended.

[kwilczynski: commit log]
Link: https://lore.kernel.org/linux-pci/20231003173453.938190-2-thippeswamy.havalige@amd.com
Signed-off-by: Thippeswamy Havalige <thippeswamy.havalige@amd.com>
Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@amd.com>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
drivers/pci/controller/pcie-xilinx-common.h [new file with mode: 0644]
drivers/pci/controller/pcie-xilinx-cpm.c

diff --git a/drivers/pci/controller/pcie-xilinx-common.h b/drivers/pci/controller/pcie-xilinx-common.h
new file mode 100644 (file)
index 0000000..e97d272
--- /dev/null
@@ -0,0 +1,30 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * (C) Copyright 2023, Xilinx, Inc.
+ */
+
+#include <linux/pci.h>
+#include <linux/pci-ecam.h>
+#include <linux/platform_device.h>
+
+/* Interrupt registers definitions */
+#define XILINX_PCIE_INTR_LINK_DOWN             0
+#define XILINX_PCIE_INTR_HOT_RESET             3
+#define XILINX_PCIE_INTR_CFG_PCIE_TIMEOUT      4
+#define XILINX_PCIE_INTR_CFG_TIMEOUT           8
+#define XILINX_PCIE_INTR_CORRECTABLE           9
+#define XILINX_PCIE_INTR_NONFATAL              10
+#define XILINX_PCIE_INTR_FATAL                 11
+#define XILINX_PCIE_INTR_CFG_ERR_POISON                12
+#define XILINX_PCIE_INTR_PME_TO_ACK_RCVD       15
+#define XILINX_PCIE_INTR_INTX                  16
+#define XILINX_PCIE_INTR_PM_PME_RCVD           17
+#define XILINX_PCIE_INTR_SLV_UNSUPP            20
+#define XILINX_PCIE_INTR_SLV_UNEXP             21
+#define XILINX_PCIE_INTR_SLV_COMPL             22
+#define XILINX_PCIE_INTR_SLV_ERRP              23
+#define XILINX_PCIE_INTR_SLV_CMPABT            24
+#define XILINX_PCIE_INTR_SLV_ILLBUR            25
+#define XILINX_PCIE_INTR_MST_DECERR            26
+#define XILINX_PCIE_INTR_MST_SLVERR            27
+#define XILINX_PCIE_INTR_SLV_PCIE_TIMEOUT      28
index 4a787a941674bc77f54bfd7ed1428527cd7f2337..a0f5e1d67b04c63924d7973f492c12c94539e4ae 100644 (file)
 #include <linux/of_address.h>
 #include <linux/of_pci.h>
 #include <linux/of_platform.h>
-#include <linux/pci.h>
-#include <linux/platform_device.h>
-#include <linux/pci-ecam.h>
 
 #include "../pci.h"
+#include "pcie-xilinx-common.h"
 
 /* Register definitions */
 #define XILINX_CPM_PCIE_REG_IDR                0x00000E10
 #define XILINX_CPM_PCIE_IR_ENABLE       0x000002A8
 #define XILINX_CPM_PCIE_IR_LOCAL        BIT(0)
 
-/* Interrupt registers definitions */
-#define XILINX_CPM_PCIE_INTR_LINK_DOWN         0
-#define XILINX_CPM_PCIE_INTR_HOT_RESET         3
-#define XILINX_CPM_PCIE_INTR_CFG_PCIE_TIMEOUT  4
-#define XILINX_CPM_PCIE_INTR_CFG_TIMEOUT       8
-#define XILINX_CPM_PCIE_INTR_CORRECTABLE       9
-#define XILINX_CPM_PCIE_INTR_NONFATAL          10
-#define XILINX_CPM_PCIE_INTR_FATAL             11
-#define XILINX_CPM_PCIE_INTR_CFG_ERR_POISON    12
-#define XILINX_CPM_PCIE_INTR_PME_TO_ACK_RCVD   15
-#define XILINX_CPM_PCIE_INTR_INTX              16
-#define XILINX_CPM_PCIE_INTR_PM_PME_RCVD       17
-#define XILINX_CPM_PCIE_INTR_SLV_UNSUPP                20
-#define XILINX_CPM_PCIE_INTR_SLV_UNEXP         21
-#define XILINX_CPM_PCIE_INTR_SLV_COMPL         22
-#define XILINX_CPM_PCIE_INTR_SLV_ERRP          23
-#define XILINX_CPM_PCIE_INTR_SLV_CMPABT                24
-#define XILINX_CPM_PCIE_INTR_SLV_ILLBUR                25
-#define XILINX_CPM_PCIE_INTR_MST_DECERR                26
-#define XILINX_CPM_PCIE_INTR_MST_SLVERR                27
-#define XILINX_CPM_PCIE_INTR_SLV_PCIE_TIMEOUT  28
-
-#define IMR(x) BIT(XILINX_CPM_PCIE_INTR_ ##x)
+#define IMR(x) BIT(XILINX_PCIE_INTR_ ##x)
 
 #define XILINX_CPM_PCIE_IMR_ALL_MASK                   \
        (                                               \
@@ -323,7 +299,7 @@ static void xilinx_cpm_pcie_event_flow(struct irq_desc *desc)
 }
 
 #define _IC(x, s)                              \
-       [XILINX_CPM_PCIE_INTR_ ## x] = { __stringify(x), s }
+       [XILINX_PCIE_INTR_ ## x] = { __stringify(x), s }
 
 static const struct {
        const char      *sym;
@@ -359,9 +335,9 @@ static irqreturn_t xilinx_cpm_pcie_intr_handler(int irq, void *dev_id)
        d = irq_domain_get_irq_data(port->cpm_domain, irq);
 
        switch (d->hwirq) {
-       case XILINX_CPM_PCIE_INTR_CORRECTABLE:
-       case XILINX_CPM_PCIE_INTR_NONFATAL:
-       case XILINX_CPM_PCIE_INTR_FATAL:
+       case XILINX_PCIE_INTR_CORRECTABLE:
+       case XILINX_PCIE_INTR_NONFATAL:
+       case XILINX_PCIE_INTR_FATAL:
                cpm_pcie_clear_err_interrupts(port);
                fallthrough;
 
@@ -466,7 +442,7 @@ static int xilinx_cpm_setup_irq(struct xilinx_cpm_pcie *port)
        }
 
        port->intx_irq = irq_create_mapping(port->cpm_domain,
-                                           XILINX_CPM_PCIE_INTR_INTX);
+                                           XILINX_PCIE_INTR_INTX);
        if (!port->intx_irq) {
                dev_err(dev, "Failed to map INTx interrupt\n");
                return -ENXIO;