Linux PCI subsystem development
 help / color / mirror / Atom feed
* [PATCH 0/2] PCI: dwc: Make the MSI domain naming explicit
@ 2026-09-30  2:22 Shawn Lin
  2026-09-30  2:22 ` [PATCH 1/2] PCI: dwc: Rename dw_pcie_allocate_domains to dw_pcie_allocate_msi_domains Shawn Lin
  2026-09-30  2:22 ` [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain Shawn Lin
  0 siblings, 2 replies; 6+ messages in thread
From: Shawn Lin @ 2026-09-30  2:22 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Bjorn Helgaas; +Cc: linux-pci, Shawn Lin


I was looking into whether the DWC core provides a common INTx irq
domain registration and handling flow, as several glue drivers owning
a legacy interrupt controller copy-paste the same code (get the
"legacy-interrupt-controller" child node, create a linear domain with
a one-line .map callback, install a chained handler).

The DWC core has no INTx equivalent at all: dw_pcie_allocate_domains()
looks like it could be that helper at first glance, but it only
creates the MSI parent irq domain (msi_create_parent_irq_domain() with
DOMAIN_BUS_PCI_MSI). Likewise, struct dw_pcie_rp::irq_domain only
serves the MSI parent domain.

So make the naming explicit:

patch 1 renames dw_pcie_allocate_domains() to
dw_pcie_allocate_msi_domains().

patch 2 renames struct dw_pcie_rp::irq_domain to ::msi_irq_domain.



Shawn Lin (2):
  PCI: dwc: Rename dw_pcie_allocate_domains to
    dw_pcie_allocate_msi_domains
  PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain

 drivers/pci/controller/dwc/pci-dra7xx.c           |  2 +-
 drivers/pci/controller/dwc/pci-keystone.c         |  4 ++--
 drivers/pci/controller/dwc/pcie-designware-host.c | 14 +++++++-------
 drivers/pci/controller/dwc/pcie-designware.h      |  6 +++---
 4 files changed, 13 insertions(+), 13 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] PCI: dwc: Rename dw_pcie_allocate_domains to dw_pcie_allocate_msi_domains
  2026-09-30  2:22 [PATCH 0/2] PCI: dwc: Make the MSI domain naming explicit Shawn Lin
@ 2026-09-30  2:22 ` Shawn Lin
  2026-09-30  9:16   ` sashiko-bot
  2026-09-30  2:22 ` [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain Shawn Lin
  1 sibling, 1 reply; 6+ messages in thread
From: Shawn Lin @ 2026-09-30  2:22 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Bjorn Helgaas; +Cc: linux-pci, Shawn Lin

Rename dw_pcie_allocate_domains() to dw_pcie_allocate_msi_domains() so that
the name says what it allocates and cannot be mistaken for a generic domain
allocator.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

---

 drivers/pci/controller/dwc/pci-keystone.c         | 2 +-
 drivers/pci/controller/dwc/pcie-designware-host.c | 6 +++---
 drivers/pci/controller/dwc/pcie-designware.h      | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c
index b8e3032..c35f3f4 100644
--- a/drivers/pci/controller/dwc/pci-keystone.c
+++ b/drivers/pci/controller/dwc/pci-keystone.c
@@ -309,7 +309,7 @@ static int ks_pcie_msi_host_init(struct dw_pcie_rp *pp)
 	dw_pcie_writel_dbi(pci, PCI_BASE_ADDRESS_0, ks_pcie->app.start);
 
 	pp->msi_irq_chip = &ks_pcie_msi_irq_chip;
-	return dw_pcie_allocate_domains(pp);
+	return dw_pcie_allocate_msi_domains(pp);
 }
 
 static void ks_pcie_handle_intx_irq(struct keystone_pcie *ks_pcie,
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index f5a38e6..7fb165c 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -207,7 +207,7 @@ static const struct irq_domain_ops dw_pcie_msi_domain_ops = {
 	.free	= dw_pcie_irq_domain_free,
 };
 
-int dw_pcie_allocate_domains(struct dw_pcie_rp *pp)
+int dw_pcie_allocate_msi_domains(struct dw_pcie_rp *pp)
 {
 	struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
 	struct irq_domain_info info = {
@@ -225,7 +225,7 @@ int dw_pcie_allocate_domains(struct dw_pcie_rp *pp)
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(dw_pcie_allocate_domains);
+EXPORT_SYMBOL_GPL(dw_pcie_allocate_msi_domains);
 
 void dw_pcie_free_msi(struct dw_pcie_rp *pp)
 {
@@ -342,7 +342,7 @@ int dw_pcie_msi_host_init(struct dw_pcie_rp *pp)
 
 	pp->msi_irq_chip = &dw_pci_msi_bottom_irq_chip;
 
-	ret = dw_pcie_allocate_domains(pp);
+	ret = dw_pcie_allocate_msi_domains(pp);
 	if (ret)
 		return ret;
 
diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
index a53ac27..22e8f95 100644
--- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -869,7 +869,7 @@ void dw_pcie_free_msi(struct dw_pcie_rp *pp);
 int dw_pcie_setup_rc(struct dw_pcie_rp *pp);
 int dw_pcie_host_init(struct dw_pcie_rp *pp);
 void dw_pcie_host_deinit(struct dw_pcie_rp *pp);
-int dw_pcie_allocate_domains(struct dw_pcie_rp *pp);
+int dw_pcie_allocate_msi_domains(struct dw_pcie_rp *pp);
 void __iomem *dw_pcie_own_conf_map_bus(struct pci_bus *bus, unsigned int devfn,
 				       int where);
 #else
@@ -910,7 +910,7 @@ static inline void dw_pcie_host_deinit(struct dw_pcie_rp *pp)
 {
 }
 
-static inline int dw_pcie_allocate_domains(struct dw_pcie_rp *pp)
+static inline int dw_pcie_allocate_msi_domains(struct dw_pcie_rp *pp)
 {
 	return 0;
 }
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain
  2026-09-30  2:22 [PATCH 0/2] PCI: dwc: Make the MSI domain naming explicit Shawn Lin
  2026-09-30  2:22 ` [PATCH 1/2] PCI: dwc: Rename dw_pcie_allocate_domains to dw_pcie_allocate_msi_domains Shawn Lin
@ 2026-09-30  2:22 ` Shawn Lin
  2026-09-30  4:10   ` Vignesh Raghavendra
  2026-09-30  9:17   ` sashiko-bot
  1 sibling, 2 replies; 6+ messages in thread
From: Shawn Lin @ 2026-09-30  2:22 UTC (permalink / raw)
  To: Manivannan Sadhasivam, Bjorn Helgaas
  Cc: linux-pci, Shawn Lin, Vignesh Raghavendra

pp->irq_domain is exclusively the MSI parent irq domain: it is created
by dw_pcie_allocate_msi_domains() with msi_create_parent_irq_domain()
and is only used to resolve the MSI child virqs in dw_handle_msi_irq()
and in the keystone and dra7xx MSI handlers. The name gives no hint
about that, in the same way dw_pcie_allocate_domains() did not say that
it was only about MSI.

Rename it to pp->msi_irq_domain, matching the previous rename.

Cc: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 drivers/pci/controller/dwc/pci-dra7xx.c           | 2 +-
 drivers/pci/controller/dwc/pci-keystone.c         | 2 +-
 drivers/pci/controller/dwc/pcie-designware-host.c | 8 ++++----
 drivers/pci/controller/dwc/pcie-designware.h      | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c
index 3460a83..0d56fd5 100644
--- a/drivers/pci/controller/dwc/pci-dra7xx.c
+++ b/drivers/pci/controller/dwc/pci-dra7xx.c
@@ -213,7 +213,7 @@ static int dra7xx_pcie_handle_msi(struct dw_pcie_rp *pp, int index)
 
 	pos = find_first_bit(&val, MAX_MSI_IRQS_PER_CTRL);
 	while (pos != MAX_MSI_IRQS_PER_CTRL) {
-		generic_handle_domain_irq(pp->irq_domain,
+		generic_handle_domain_irq(pp->msi_irq_domain,
 					  (index * MAX_MSI_IRQS_PER_CTRL) + pos);
 		pos++;
 		pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL, pos);
diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c
index c35f3f4..388a97c 100644
--- a/drivers/pci/controller/dwc/pci-keystone.c
+++ b/drivers/pci/controller/dwc/pci-keystone.c
@@ -633,7 +633,7 @@ static void ks_pcie_msi_irq_handler(struct irq_desc *desc)
 
 		vector = offset + (pos << 3);
 		dev_dbg(dev, "irq: bit %d, vector %d\n", pos, vector);
-		generic_handle_domain_irq(pp->irq_domain, vector);
+		generic_handle_domain_irq(pp->msi_irq_domain, vector);
 	}
 
 	chained_irq_exit(chip, desc);
diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
index 7fb165c..0bf9a59 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -82,7 +82,7 @@ void dw_handle_msi_irq(struct dw_pcie_rp *pp)
 			continue;
 
 		for_each_set_bit(pos, &status, MAX_MSI_IRQS_PER_CTRL)
-			generic_handle_demux_domain_irq(pp->irq_domain, irq_off + pos);
+			generic_handle_demux_domain_irq(pp->msi_irq_domain, irq_off + pos);
 	}
 }
 
@@ -217,8 +217,8 @@ int dw_pcie_allocate_msi_domains(struct dw_pcie_rp *pp)
 		.host_data	= pp,
 	};
 
-	pp->irq_domain = msi_create_parent_irq_domain(&info, &dw_pcie_msi_parent_ops);
-	if (!pp->irq_domain) {
+	pp->msi_irq_domain = msi_create_parent_irq_domain(&info, &dw_pcie_msi_parent_ops);
+	if (!pp->msi_irq_domain) {
 		dev_err(pci->dev, "Failed to create IRQ domain\n");
 		return -ENOMEM;
 	}
@@ -236,7 +236,7 @@ void dw_pcie_free_msi(struct dw_pcie_rp *pp)
 			irq_set_chained_handler_and_data(pp->msi_irq[ctrl], NULL, NULL);
 	}
 
-	irq_domain_remove(pp->irq_domain);
+	irq_domain_remove(pp->msi_irq_domain);
 }
 EXPORT_SYMBOL_GPL(dw_pcie_free_msi);
 
diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
index 22e8f95..f2fdc29 100644
--- a/drivers/pci/controller/dwc/pcie-designware.h
+++ b/drivers/pci/controller/dwc/pcie-designware.h
@@ -454,7 +454,7 @@ struct dw_pcie_rp {
 	int			irq;
 	const struct dw_pcie_host_ops *ops;
 	int			msi_irq[MAX_MSI_CTRLS];
-	struct irq_domain	*irq_domain;
+	struct irq_domain	*msi_irq_domain;
 	dma_addr_t		msi_data;
 	struct irq_chip		*msi_irq_chip;
 	u32			num_vectors;
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain
  2026-09-30  2:22 ` [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain Shawn Lin
@ 2026-09-30  4:10   ` Vignesh Raghavendra
  2026-09-30  9:17   ` sashiko-bot
  1 sibling, 0 replies; 6+ messages in thread
From: Vignesh Raghavendra @ 2026-09-30  4:10 UTC (permalink / raw)
  To: Shawn Lin, Manivannan Sadhasivam, Bjorn Helgaas; +Cc: linux-pci



On 30/09/26 07:52, Shawn Lin wrote:
> pp->irq_domain is exclusively the MSI parent irq domain: it is created
> by dw_pcie_allocate_msi_domains() with msi_create_parent_irq_domain()
> and is only used to resolve the MSI child virqs in dw_handle_msi_irq()
> and in the keystone and dra7xx MSI handlers. The name gives no hint
> about that, in the same way dw_pcie_allocate_domains() did not say that
> it was only about MSI.
> 
> Rename it to pp->msi_irq_domain, matching the previous rename.
> 
> Cc: Vignesh Raghavendra <vigneshr@ti.com>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 

Hmm for some reason I dont see this on the lore:

https://lore.kernel.org/all/1790734930-217000-1-git-send-email-shawn.lin@rock-chips.com/

Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>


>  drivers/pci/controller/dwc/pci-dra7xx.c           | 2 +-
>  drivers/pci/controller/dwc/pci-keystone.c         | 2 +-
>  drivers/pci/controller/dwc/pcie-designware-host.c | 8 ++++----
>  drivers/pci/controller/dwc/pcie-designware.h      | 2 +-
>  4 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/pci/controller/dwc/pci-dra7xx.c b/drivers/pci/controller/dwc/pci-dra7xx.c
> index 3460a83..0d56fd5 100644
> --- a/drivers/pci/controller/dwc/pci-dra7xx.c
> +++ b/drivers/pci/controller/dwc/pci-dra7xx.c
> @@ -213,7 +213,7 @@ static int dra7xx_pcie_handle_msi(struct dw_pcie_rp *pp, int index)
>  
>  	pos = find_first_bit(&val, MAX_MSI_IRQS_PER_CTRL);
>  	while (pos != MAX_MSI_IRQS_PER_CTRL) {
> -		generic_handle_domain_irq(pp->irq_domain,
> +		generic_handle_domain_irq(pp->msi_irq_domain,
>  					  (index * MAX_MSI_IRQS_PER_CTRL) + pos);
>  		pos++;
>  		pos = find_next_bit(&val, MAX_MSI_IRQS_PER_CTRL, pos);
> diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c
> index c35f3f4..388a97c 100644
> --- a/drivers/pci/controller/dwc/pci-keystone.c
> +++ b/drivers/pci/controller/dwc/pci-keystone.c
> @@ -633,7 +633,7 @@ static void ks_pcie_msi_irq_handler(struct irq_desc *desc)
>  
>  		vector = offset + (pos << 3);
>  		dev_dbg(dev, "irq: bit %d, vector %d\n", pos, vector);
> -		generic_handle_domain_irq(pp->irq_domain, vector);
> +		generic_handle_domain_irq(pp->msi_irq_domain, vector);
>  	}
>  
>  	chained_irq_exit(chip, desc);
> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
> index 7fb165c..0bf9a59 100644
> --- a/drivers/pci/controller/dwc/pcie-designware-host.c
> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
> @@ -82,7 +82,7 @@ void dw_handle_msi_irq(struct dw_pcie_rp *pp)
>  			continue;
>  
>  		for_each_set_bit(pos, &status, MAX_MSI_IRQS_PER_CTRL)
> -			generic_handle_demux_domain_irq(pp->irq_domain, irq_off + pos);
> +			generic_handle_demux_domain_irq(pp->msi_irq_domain, irq_off + pos);
>  	}
>  }
>  
> @@ -217,8 +217,8 @@ int dw_pcie_allocate_msi_domains(struct dw_pcie_rp *pp)
>  		.host_data	= pp,
>  	};
>  
> -	pp->irq_domain = msi_create_parent_irq_domain(&info, &dw_pcie_msi_parent_ops);
> -	if (!pp->irq_domain) {
> +	pp->msi_irq_domain = msi_create_parent_irq_domain(&info, &dw_pcie_msi_parent_ops);
> +	if (!pp->msi_irq_domain) {
>  		dev_err(pci->dev, "Failed to create IRQ domain\n");
>  		return -ENOMEM;
>  	}
> @@ -236,7 +236,7 @@ void dw_pcie_free_msi(struct dw_pcie_rp *pp)
>  			irq_set_chained_handler_and_data(pp->msi_irq[ctrl], NULL, NULL);
>  	}
>  
> -	irq_domain_remove(pp->irq_domain);
> +	irq_domain_remove(pp->msi_irq_domain);
>  }
>  EXPORT_SYMBOL_GPL(dw_pcie_free_msi);
>  
> diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h
> index 22e8f95..f2fdc29 100644
> --- a/drivers/pci/controller/dwc/pcie-designware.h
> +++ b/drivers/pci/controller/dwc/pcie-designware.h
> @@ -454,7 +454,7 @@ struct dw_pcie_rp {
>  	int			irq;
>  	const struct dw_pcie_host_ops *ops;
>  	int			msi_irq[MAX_MSI_CTRLS];
> -	struct irq_domain	*irq_domain;
> +	struct irq_domain	*msi_irq_domain;
>  	dma_addr_t		msi_data;
>  	struct irq_chip		*msi_irq_chip;
>  	u32			num_vectors;

-- 
Regards
Vignesh
https://ti.com/opensource


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] PCI: dwc: Rename dw_pcie_allocate_domains to dw_pcie_allocate_msi_domains
  2026-09-30  2:22 ` [PATCH 1/2] PCI: dwc: Rename dw_pcie_allocate_domains to dw_pcie_allocate_msi_domains Shawn Lin
@ 2026-09-30  9:16   ` sashiko-bot
  0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-09-30  9:16 UTC (permalink / raw)
  To: Shawn Lin; +Cc: linux-pci

> Rename dw_pcie_allocate_domains() to dw_pcie_allocate_msi_domains() so that
> the name says what it allocates and cannot be mistaken for a generic domain
> allocator.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/1790734930-217000-1-git-send-email-shawn.lin@rock-chips.com?part=1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain
  2026-09-30  2:22 ` [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain Shawn Lin
  2026-09-30  4:10   ` Vignesh Raghavendra
@ 2026-09-30  9:17   ` sashiko-bot
  1 sibling, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-09-30  9:17 UTC (permalink / raw)
  To: Shawn Lin; +Cc: linux-pci

> pp->irq_domain is exclusively the MSI parent irq domain: it is created
> by dw_pcie_allocate_msi_domains() with msi_create_parent_irq_domain()
> and is only used to resolve the MSI child virqs in dw_handle_msi_irq()
> and in the keystone and dra7xx MSI handlers. The name gives no hint
> about that, in the same way dw_pcie_allocate_domains() did not say that
> it was only about MSI.
> 
> Rename it to pp->msi_irq_domain, matching the previous rename.
> 
> Cc: Vignesh Raghavendra <vigneshr@ti.com>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/1790734930-217000-1-git-send-email-shawn.lin@rock-chips.com?part=2


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-09-30  9:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-30  2:22 [PATCH 0/2] PCI: dwc: Make the MSI domain naming explicit Shawn Lin
2026-09-30  2:22 ` [PATCH 1/2] PCI: dwc: Rename dw_pcie_allocate_domains to dw_pcie_allocate_msi_domains Shawn Lin
2026-09-30  9:16   ` sashiko-bot
2026-09-30  2:22 ` [PATCH 2/2] PCI: dwc: Rename pp->irq_domain to pp->msi_irq_domain Shawn Lin
2026-09-30  4:10   ` Vignesh Raghavendra
2026-09-30  9:17   ` sashiko-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox