All of lore.kernel.org
 help / color / mirror / Atom feed
From: Minda Chen <minda.chen@starfivetech.com>
To: "Daire McNamara" <daire.mcnamara@microchip.com>,
	"Conor Dooley" <conor@kernel.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Emil Renner Berthing" <emil.renner.berthing@canonical.com>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org, linux-pci@vger.kernel.org,
	"Pali Rohár" <pali@kernel.org>,
	"Paul Walmsley" <paul.walmsley@sifive.com>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Mason Huo" <mason.huo@starfivetech.com>,
	"Leyfoon Tan" <leyfoon.tan@starfivetech.com>,
	"Kevin Xie" <kevin.xie@starfivetech.com>,
	"Minda Chen" <minda.chen@starfivetech.com>
Subject: [PATCH v6 14/19] PCI: microchip: Add event IRQ domain ops to plda_event struct
Date: Fri, 15 Sep 2023 18:22:38 +0800	[thread overview]
Message-ID: <20230915102243.59775-15-minda.chen@starfivetech.com> (raw)
In-Reply-To: <20230915102243.59775-1-minda.chen@starfivetech.com>

For register different event domain ops, Add domain_ops
pointer to plda_event struct.

Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
---
 drivers/pci/controller/plda/pcie-microchip-host.c | 12 +++++++++---
 drivers/pci/controller/plda/pcie-plda.h           |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
index 875bdb03ce22..49e09d24eb8f 100644
--- a/drivers/pci/controller/plda/pcie-microchip-host.c
+++ b/drivers/pci/controller/plda/pcie-microchip-host.c
@@ -810,13 +810,15 @@ static const struct plda_event_ops mc_event_ops = {
 };
 
 static const struct plda_event mc_event = {
+	.domain_ops             = &mc_event_domain_ops,
 	.event_ops              = &mc_event_ops,
 	.request_event_irq      = mc_request_event_irq,
 	.intx_event             = EVENT_LOCAL_PM_MSI_INT_INTX,
 	.msi_event              = EVENT_LOCAL_PM_MSI_INT_MSI,
 };
 
-static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port,
+				      const struct irq_domain_ops *ops)
 {
 	struct device *dev = port->dev;
 	struct device_node *node = dev->of_node;
@@ -830,7 +832,8 @@ static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
 	}
 
 	port->event_domain = irq_domain_add_linear(pcie_intc_node, port->num_events,
-						   &mc_event_domain_ops, port);
+						   ops, port);
+
 	if (!port->event_domain) {
 		dev_err(dev, "failed to get event domain\n");
 		of_node_put(pcie_intc_node);
@@ -923,13 +926,16 @@ static int plda_init_interrupts(struct platform_device *pdev,
 	int irq;
 	int i, intx_irq, msi_irq, event_irq;
 	int ret;
+	const struct irq_domain_ops *irq_dom_ops;
 
 	if (!event->event_ops || !event->event_ops->get_events) {
 		dev_err(dev, "no get events ops\n");
 		return -EINVAL;
 	}
 
-	ret = plda_pcie_init_irq_domains(port);
+	irq_dom_ops = event->domain_ops ? event->domain_ops : &mc_event_domain_ops;
+
+	ret = plda_pcie_init_irq_domains(port, irq_dom_ops);
 	if (ret) {
 		dev_err(dev, "failed creating IRQ domains\n");
 		return ret;
diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
index 48d7bc471137..122084a3318a 100644
--- a/drivers/pci/controller/plda/pcie-plda.h
+++ b/drivers/pci/controller/plda/pcie-plda.h
@@ -155,6 +155,7 @@ struct plda_pcie_rp {
 };
 
 struct plda_event {
+	const struct irq_domain_ops *domain_ops;
 	const struct plda_event_ops *event_ops;
 	int (*request_event_irq)(struct plda_pcie_rp *pcie,
 				 int event_irq, int event);
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: Minda Chen <minda.chen@starfivetech.com>
To: "Daire McNamara" <daire.mcnamara@microchip.com>,
	"Conor Dooley" <conor@kernel.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	"Emil Renner Berthing" <emil.renner.berthing@canonical.com>
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org, linux-pci@vger.kernel.org,
	"Pali Rohár" <pali@kernel.org>,
	"Paul Walmsley" <paul.walmsley@sifive.com>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Mason Huo" <mason.huo@starfivetech.com>,
	"Leyfoon Tan" <leyfoon.tan@starfivetech.com>,
	"Kevin Xie" <kevin.xie@starfivetech.com>,
	"Minda Chen" <minda.chen@starfivetech.com>
Subject: [PATCH v6 14/19] PCI: microchip: Add event IRQ domain ops to plda_event struct
Date: Fri, 15 Sep 2023 18:22:38 +0800	[thread overview]
Message-ID: <20230915102243.59775-15-minda.chen@starfivetech.com> (raw)
In-Reply-To: <20230915102243.59775-1-minda.chen@starfivetech.com>

For register different event domain ops, Add domain_ops
pointer to plda_event struct.

Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
---
 drivers/pci/controller/plda/pcie-microchip-host.c | 12 +++++++++---
 drivers/pci/controller/plda/pcie-plda.h           |  1 +
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/controller/plda/pcie-microchip-host.c b/drivers/pci/controller/plda/pcie-microchip-host.c
index 875bdb03ce22..49e09d24eb8f 100644
--- a/drivers/pci/controller/plda/pcie-microchip-host.c
+++ b/drivers/pci/controller/plda/pcie-microchip-host.c
@@ -810,13 +810,15 @@ static const struct plda_event_ops mc_event_ops = {
 };
 
 static const struct plda_event mc_event = {
+	.domain_ops             = &mc_event_domain_ops,
 	.event_ops              = &mc_event_ops,
 	.request_event_irq      = mc_request_event_irq,
 	.intx_event             = EVENT_LOCAL_PM_MSI_INT_INTX,
 	.msi_event              = EVENT_LOCAL_PM_MSI_INT_MSI,
 };
 
-static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
+static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port,
+				      const struct irq_domain_ops *ops)
 {
 	struct device *dev = port->dev;
 	struct device_node *node = dev->of_node;
@@ -830,7 +832,8 @@ static int plda_pcie_init_irq_domains(struct plda_pcie_rp *port)
 	}
 
 	port->event_domain = irq_domain_add_linear(pcie_intc_node, port->num_events,
-						   &mc_event_domain_ops, port);
+						   ops, port);
+
 	if (!port->event_domain) {
 		dev_err(dev, "failed to get event domain\n");
 		of_node_put(pcie_intc_node);
@@ -923,13 +926,16 @@ static int plda_init_interrupts(struct platform_device *pdev,
 	int irq;
 	int i, intx_irq, msi_irq, event_irq;
 	int ret;
+	const struct irq_domain_ops *irq_dom_ops;
 
 	if (!event->event_ops || !event->event_ops->get_events) {
 		dev_err(dev, "no get events ops\n");
 		return -EINVAL;
 	}
 
-	ret = plda_pcie_init_irq_domains(port);
+	irq_dom_ops = event->domain_ops ? event->domain_ops : &mc_event_domain_ops;
+
+	ret = plda_pcie_init_irq_domains(port, irq_dom_ops);
 	if (ret) {
 		dev_err(dev, "failed creating IRQ domains\n");
 		return ret;
diff --git a/drivers/pci/controller/plda/pcie-plda.h b/drivers/pci/controller/plda/pcie-plda.h
index 48d7bc471137..122084a3318a 100644
--- a/drivers/pci/controller/plda/pcie-plda.h
+++ b/drivers/pci/controller/plda/pcie-plda.h
@@ -155,6 +155,7 @@ struct plda_pcie_rp {
 };
 
 struct plda_event {
+	const struct irq_domain_ops *domain_ops;
 	const struct plda_event_ops *event_ops;
 	int (*request_event_irq)(struct plda_pcie_rp *pcie,
 				 int event_irq, int event);
-- 
2.17.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  parent reply	other threads:[~2023-09-15 10:23 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-15 10:22 [PATCH v6 0/19] Refactoring Microchip PCIe driver and add StarFive PCIe Minda Chen
2023-09-15 10:22 ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 01/19] dt-bindings: PCI: Add PLDA XpressRICH PCIe host common properties Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 02/19] PCI: microchip: Move pcie-microchip-host.c to plda directory Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-16  0:09   ` Conor Dooley
2023-09-16  0:09     ` Conor Dooley
2023-09-17  8:49     ` Minda Chen
2023-09-17  8:49       ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 03/19] PCI: microchip: Move PLDA IP register macros to pcie-plda.h Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 04/19] PCI: microchip: Rename data structure Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 05/19] PCI: microchip: Rename two setup functions Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 06/19] PCI: microchip: Change the argument of plda_pcie_setup_iomems() Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 07/19] PCI: plda: Move the setup functions to pcie-plda-host.c Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-17 22:45   ` Emil Renner Berthing
2023-09-17 22:45     ` Emil Renner Berthing
2023-09-22 10:42     ` Minda Chen
2023-09-22 10:42       ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 08/19] PCI: plda: Add event interrupt codes and IRQ domain ops Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-16  0:11   ` Conor Dooley
2023-09-16  0:11     ` Conor Dooley
2023-09-21 15:08     ` Bjorn Helgaas
2023-09-21 15:08       ` Bjorn Helgaas
2023-09-22  1:23       ` Minda Chen
2023-09-22  1:23         ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 09/19] PCI: microchip: Rename interrupt related functions Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 10/19] PCI: microchip: Add num_events field to struct plda_pcie_rp Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 11/19] PCI: microchip: Add request_event_irq() callback function Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 12/19] PCI: microchip: Add INTx and MSI event num to struct plda_event Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 13/19] PCI: microchip: Add get_events() callback function Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` Minda Chen [this message]
2023-09-15 10:22   ` [PATCH v6 14/19] PCI: microchip: Add event IRQ domain ops to plda_event struct Minda Chen
2023-09-15 10:22 ` [PATCH v6 15/19] PCI: microchip: Move IRQ functions to pcie-plda-host.c Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 16/19] PCI: plda: Set plda_event_handler() to static Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 17/19] dt-bindings: PCI: Add StarFive JH7110 PCIe controller Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-15 10:22 ` [PATCH v6 18/19] PCI: starfive: Add " Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-17 22:13   ` Emil Renner Berthing
2023-09-17 22:13     ` Emil Renner Berthing
2023-09-18 10:52     ` Emil Renner Berthing
2023-09-18 10:52       ` Emil Renner Berthing
2023-09-19 11:17     ` Minda Chen
2023-09-19 11:17       ` Minda Chen
2023-09-19 11:34       ` Emil Renner Berthing
2023-09-19 11:34         ` Emil Renner Berthing
2023-09-21 10:50         ` Minda Chen
2023-09-21 10:50           ` Minda Chen
2023-09-21 11:05           ` Emil Renner Berthing
2023-09-21 11:05             ` Emil Renner Berthing
2023-09-15 10:22 ` [PATCH v6 19/19] riscv: dts: starfive: add PCIe dts configuration for JH7110 Minda Chen
2023-09-15 10:22   ` Minda Chen
2023-09-16  0:07   ` Conor Dooley
2023-09-16  0:07     ` Conor Dooley
2023-09-17  8:49     ` Minda Chen
2023-09-17  8:49       ` Minda Chen
2023-09-17 22:20   ` Emil Renner Berthing
2023-09-17 22:20     ` Emil Renner Berthing
2023-09-15 10:33 ` [PATCH v6 0/19] Refactoring Microchip PCIe driver and add StarFive PCIe Minda Chen
2023-09-15 10:33   ` Minda Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230915102243.59775-15-minda.chen@starfivetech.com \
    --to=minda.chen@starfivetech.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=bhelgaas@google.com \
    --cc=conor@kernel.org \
    --cc=daire.mcnamara@microchip.com \
    --cc=devicetree@vger.kernel.org \
    --cc=emil.renner.berthing@canonical.com \
    --cc=kevin.xie@starfivetech.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=kw@linux.com \
    --cc=leyfoon.tan@starfivetech.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=lpieralisi@kernel.org \
    --cc=mason.huo@starfivetech.com \
    --cc=p.zabel@pengutronix.de \
    --cc=pali@kernel.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.