drivers/pci/controller/mobiveil/pcie-mobiveil-host.c | 5 ++--- drivers/pci/controller/pcie-mediatek-gen3.c | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-)
irq_domain_create_simple() takes fwnode as the first argument. It can be
extracted from the struct device using dev_fwnode() helper instead of
using of_node with of_fwnode_handle().
So use the dev_fwnode() helper.
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-pci@vger.kernel.org
---
drivers/pci/controller/mobiveil/pcie-mobiveil-host.c | 5 ++---
drivers/pci/controller/pcie-mediatek-gen3.c | 3 +--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c b/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
index a600f46ee3c3..cd44ddb698ea 100644
--- a/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
+++ b/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
@@ -464,9 +464,8 @@ static int mobiveil_pcie_init_irq_domain(struct mobiveil_pcie *pcie)
struct mobiveil_root_port *rp = &pcie->rp;
/* setup INTx */
- rp->intx_domain = irq_domain_create_linear(of_fwnode_handle(dev->of_node), PCI_NUM_INTX,
- &intx_domain_ops, pcie);
-
+ rp->intx_domain = irq_domain_create_linear(dev_fwnode(dev), PCI_NUM_INTX, &intx_domain_ops,
+ pcie);
if (!rp->intx_domain) {
dev_err(dev, "Failed to get a INTx IRQ domain\n");
return -ENOMEM;
diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c
index b55f5973414c..5464b4ae5c20 100644
--- a/drivers/pci/controller/pcie-mediatek-gen3.c
+++ b/drivers/pci/controller/pcie-mediatek-gen3.c
@@ -756,8 +756,7 @@ static int mtk_pcie_init_irq_domains(struct mtk_gen3_pcie *pcie)
/* Setup MSI */
mutex_init(&pcie->lock);
- pcie->msi_bottom_domain = irq_domain_create_linear(of_fwnode_handle(node),
- PCIE_MSI_IRQS_NUM,
+ pcie->msi_bottom_domain = irq_domain_create_linear(dev_fwnode(dev), PCIE_MSI_IRQS_NUM,
&mtk_msi_bottom_domain_ops, pcie);
if (!pcie->msi_bottom_domain) {
dev_err(dev, "failed to create MSI bottom domain\n");
--
2.49.0
[+cc Nam]
On Wed, Jun 11, 2025 at 12:43:44PM +0200, Jiri Slaby (SUSE) wrote:
> irq_domain_create_simple() takes fwnode as the first argument. It can be
> extracted from the struct device using dev_fwnode() helper instead of
> using of_node with of_fwnode_handle().
>
> So use the dev_fwnode() helper.
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> Cc: Bjorn Helgaas <bhelgaas@google.com>
> Cc: linux-pci@vger.kernel.org
> ---
> drivers/pci/controller/mobiveil/pcie-mobiveil-host.c | 5 ++---
> drivers/pci/controller/pcie-mediatek-gen3.c | 3 +--
I think the pcie-mediatek-gen3.c part of this is no longer relevant
after Nam's series [1]. This pcie-mediatek-gen3.c was the only thing
on the pci/controller/mediatek-gen3 branch, so I'm going to drop that
for now.
The pcie-mobiveil-host.c part is still queued on
pci/controller/mobiveil for v6.17.
[1] https://patch.msgid.link/bfbd2e375269071b69e1aa85e629ee4b7c99518f.1750858083.git.namcao@linutronix.de
> 2 files changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c b/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
> index a600f46ee3c3..cd44ddb698ea 100644
> --- a/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
> +++ b/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c
> @@ -464,9 +464,8 @@ static int mobiveil_pcie_init_irq_domain(struct mobiveil_pcie *pcie)
> struct mobiveil_root_port *rp = &pcie->rp;
>
> /* setup INTx */
> - rp->intx_domain = irq_domain_create_linear(of_fwnode_handle(dev->of_node), PCI_NUM_INTX,
> - &intx_domain_ops, pcie);
> -
> + rp->intx_domain = irq_domain_create_linear(dev_fwnode(dev), PCI_NUM_INTX, &intx_domain_ops,
> + pcie);
> if (!rp->intx_domain) {
> dev_err(dev, "Failed to get a INTx IRQ domain\n");
> return -ENOMEM;
> diff --git a/drivers/pci/controller/pcie-mediatek-gen3.c b/drivers/pci/controller/pcie-mediatek-gen3.c
> index b55f5973414c..5464b4ae5c20 100644
> --- a/drivers/pci/controller/pcie-mediatek-gen3.c
> +++ b/drivers/pci/controller/pcie-mediatek-gen3.c
> @@ -756,8 +756,7 @@ static int mtk_pcie_init_irq_domains(struct mtk_gen3_pcie *pcie)
> /* Setup MSI */
> mutex_init(&pcie->lock);
>
> - pcie->msi_bottom_domain = irq_domain_create_linear(of_fwnode_handle(node),
> - PCIE_MSI_IRQS_NUM,
> + pcie->msi_bottom_domain = irq_domain_create_linear(dev_fwnode(dev), PCIE_MSI_IRQS_NUM,
> &mtk_msi_bottom_domain_ops, pcie);
> if (!pcie->msi_bottom_domain) {
> dev_err(dev, "failed to create MSI bottom domain\n");
> --
> 2.49.0
>
On Tue, Jul 15, 2025 at 01:49:17PM -0500, Bjorn Helgaas wrote:
> On Wed, Jun 11, 2025 at 12:43:44PM +0200, Jiri Slaby (SUSE) wrote:
> > irq_domain_create_simple() takes fwnode as the first argument. It can be
> > extracted from the struct device using dev_fwnode() helper instead of
> > using of_node with of_fwnode_handle().
> >
> > So use the dev_fwnode() helper.
> >
> > Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > Cc: linux-pci@vger.kernel.org
> > ---
> > drivers/pci/controller/mobiveil/pcie-mobiveil-host.c | 5 ++---
> > drivers/pci/controller/pcie-mediatek-gen3.c | 3 +--
>
> I think the pcie-mediatek-gen3.c part of this is no longer relevant
> after Nam's series [1].
fwnode is still needed after my patch. As part of
struct irq_domain_info info = { ... }
You could squash this one into my patch. I personally would leave it be.
But fine to me either way.
> This pcie-mediatek-gen3.c was the only thing on the
> pci/controller/mediatek-gen3 branch, so I'm going to drop that for now.
>
> The pcie-mobiveil-host.c part is still queued on
> pci/controller/mobiveil for v6.17.
>
> [1] https://patch.msgid.link/bfbd2e375269071b69e1aa85e629ee4b7c99518f.1750858083.git.namcao@linutronix.de
Best regards,
Nam
[+cc Arnd]
On Wed, Jul 16, 2025 at 09:59:42AM +0200, Nam Cao wrote:
> On Tue, Jul 15, 2025 at 01:49:17PM -0500, Bjorn Helgaas wrote:
> > On Wed, Jun 11, 2025 at 12:43:44PM +0200, Jiri Slaby (SUSE) wrote:
> > > irq_domain_create_simple() takes fwnode as the first argument. It can be
> > > extracted from the struct device using dev_fwnode() helper instead of
> > > using of_node with of_fwnode_handle().
> > >
> > > So use the dev_fwnode() helper.
> > >
> > > Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> > > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > > Cc: linux-pci@vger.kernel.org
> > > ---
> > > drivers/pci/controller/mobiveil/pcie-mobiveil-host.c | 5 ++---
> > > drivers/pci/controller/pcie-mediatek-gen3.c | 3 +--
> >
> > I think the pcie-mediatek-gen3.c part of this is no longer relevant
> > after Nam's series [1].
>
> fwnode is still needed after my patch. As part of
> struct irq_domain_info info = { ... }
>
> You could squash this one into my patch. I personally would leave it be.
> But fine to me either way.
Oh, I think I see what happened:
- Jiri replaced of_fwnode_handle() with dev_fwnode() in the
irq_domain_create_linear() call [1]
- On top of that, Nam replaced irq_domain_create_linear() with
msi_create_parent_irq_domain(), and moved the dev_fwnode() to the
struct irq_domain_info [2]
- I rebuilt pci/next with Nam's series merged *before* Jiri's,
resulting in a conflict (of_fwnode_handle() was still used in the
irq_domain_create_linear() call) which I resolved by using
dev_fwnode() when building struct irq_domain_info [3]
I think the result [4] is OK, but it's not ideal because a
dev_fwnode() conversion got inserted into Nam's patch without
explanation.
So I think I'll put Jiri's patches (along with Arnd's similar altera
patch [5]) on a branch and merge them before Nam's.
Jiri, question for you: even after all this, there are still several
uses in drivers/pci/ of of_fwnode_handle() to extract the
fwnode_handle for a struct device * [6,7,8,9,10,11,12].
Should these also be changed?
Bjorn
[1] https://lore.kernel.org/r/20250611104348.192092-16-jirislaby@kernel.org
[2] https://patch.msgid.link/bfbd2e375269071b69e1aa85e629ee4b7c99518f.1750858083.git.namcao@linutronix.de
[3] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/commit/?id=dd6fad415071
[4] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-mediatek-gen3.c?id=beedc9eb3114#n750
[5] https://lore.kernel.org/r/20250611104348.192092-2-jirislaby@kernel.org
[6] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/dwc/pcie-designware-host.c?id=beedc9eb3114#n217
[7] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c?id=beedc9eb3114#n442
[8] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-altera-msi.c?id=beedc9eb3114#n169
[9] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-mediatek.c?id=beedc9eb3114#n490
[10] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-xilinx-dma-pl.c?id=beedc9eb3114#n468
[11] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-xilinx-nwl.c?id=beedc9eb3114#n501
[12] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/plda/pcie-plda-host.c?id=beedc9eb3114#n156
Jiri, question for you below about more possible drivers/pci/
conversions to use dev_fwnode() for struct device * cases.
Would like to get this in for v6.17 if these should be changed.
Bjorn
On Wed, Jul 16, 2025 at 09:49:38AM -0500, Bjorn Helgaas wrote:
> On Wed, Jul 16, 2025 at 09:59:42AM +0200, Nam Cao wrote:
> > On Tue, Jul 15, 2025 at 01:49:17PM -0500, Bjorn Helgaas wrote:
> > > On Wed, Jun 11, 2025 at 12:43:44PM +0200, Jiri Slaby (SUSE) wrote:
> > > > irq_domain_create_simple() takes fwnode as the first argument. It can be
> > > > extracted from the struct device using dev_fwnode() helper instead of
> > > > using of_node with of_fwnode_handle().
> > > >
> > > > So use the dev_fwnode() helper.
> > > >
> > > > Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
> > > > Cc: Bjorn Helgaas <bhelgaas@google.com>
> > > > Cc: linux-pci@vger.kernel.org
> > > > ---
> > > > drivers/pci/controller/mobiveil/pcie-mobiveil-host.c | 5 ++---
> > > > drivers/pci/controller/pcie-mediatek-gen3.c | 3 +--
> > >
> > > I think the pcie-mediatek-gen3.c part of this is no longer relevant
> > > after Nam's series [1].
> >
> > fwnode is still needed after my patch. As part of
> > struct irq_domain_info info = { ... }
> >
> > You could squash this one into my patch. I personally would leave it be.
> > But fine to me either way.
>
> Oh, I think I see what happened:
>
> - Jiri replaced of_fwnode_handle() with dev_fwnode() in the
> irq_domain_create_linear() call [1]
>
> - On top of that, Nam replaced irq_domain_create_linear() with
> msi_create_parent_irq_domain(), and moved the dev_fwnode() to the
> struct irq_domain_info [2]
>
> - I rebuilt pci/next with Nam's series merged *before* Jiri's,
> resulting in a conflict (of_fwnode_handle() was still used in the
> irq_domain_create_linear() call) which I resolved by using
> dev_fwnode() when building struct irq_domain_info [3]
>
> I think the result [4] is OK, but it's not ideal because a
> dev_fwnode() conversion got inserted into Nam's patch without
> explanation.
>
> So I think I'll put Jiri's patches (along with Arnd's similar altera
> patch [5]) on a branch and merge them before Nam's.
>
> Jiri, question for you: even after all this, there are still several
> uses in drivers/pci/ of of_fwnode_handle() to extract the
> fwnode_handle for a struct device * [6,7,8,9,10,11,12].
>
> Should these also be changed?
>
> Bjorn
>
> [1] https://lore.kernel.org/r/20250611104348.192092-16-jirislaby@kernel.org
> [2] https://patch.msgid.link/bfbd2e375269071b69e1aa85e629ee4b7c99518f.1750858083.git.namcao@linutronix.de
> [3] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/commit/?id=dd6fad415071
> [4] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-mediatek-gen3.c?id=beedc9eb3114#n750
> [5] https://lore.kernel.org/r/20250611104348.192092-2-jirislaby@kernel.org
>
> [6] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/dwc/pcie-designware-host.c?id=beedc9eb3114#n217
> [7] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/mobiveil/pcie-mobiveil-host.c?id=beedc9eb3114#n442
> [8] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-altera-msi.c?id=beedc9eb3114#n169
> [9] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-mediatek.c?id=beedc9eb3114#n490
> [10] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-xilinx-dma-pl.c?id=beedc9eb3114#n468
> [11] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/pcie-xilinx-nwl.c?id=beedc9eb3114#n501
> [12] https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/tree/drivers/pci/controller/plda/pcie-plda-host.c?id=beedc9eb3114#n156
On 21. 07. 25, 19:08, Bjorn Helgaas wrote: > Jiri, question for you below about more possible drivers/pci/ > conversions to use dev_fwnode() for struct device * cases. Sorry, I am a way too occupied :/. > Would like to get this in for v6.17 if these should be changed. It's not necessary, but a good to have cleanup (opposed to the posted fixes, which were required). I will switch those eventually, but I don't promise 6.17. (If someone does not beat me to it.) thanks, -- js suse labs
On Tue, Jul 22, 2025 at 08:24:26AM +0200, Jiri Slaby wrote: > On 21. 07. 25, 19:08, Bjorn Helgaas wrote: > > Jiri, question for you below about more possible drivers/pci/ > > conversions to use dev_fwnode() for struct device * cases. > > Sorry, I am a way too occupied :/. > > > Would like to get this in for v6.17 if these should be changed. > > It's not necessary, but a good to have cleanup (opposed to the posted fixes, > which were required). I will switch those eventually, but I don't promise > 6.17. (If someone does not beat me to it.) It's not clear from the commit log: irq_domain_create_simple() takes fwnode as the first argument. It can be extracted from the struct device using dev_fwnode() helper instead of using of_node with of_fwnode_handle(). So use the dev_fwnode() helper. why the posted fixes are required (other than Arnd's change to altera_pcie_init_irq_domain(), which fixes an unused variable warning when CONFIG_OF is not enabled). Since it sounds like no changes are required for the other ones I mentioned, I'm going to leave them alone for now: dw_pcie_allocate_domains() mobiveil_allocate_msi_domains() altera_allocate_domains() mtk_pcie_allocate_msi_domains() xilinx_pl_dma_pcie_init_msi_irq_domain() nwl_pcie_init_msi_irq_domain() plda_allocate_msi_domains() Bjorn
On 23. 07. 25, 1:20, Bjorn Helgaas wrote: > On Tue, Jul 22, 2025 at 08:24:26AM +0200, Jiri Slaby wrote: >> On 21. 07. 25, 19:08, Bjorn Helgaas wrote: >>> Jiri, question for you below about more possible drivers/pci/ >>> conversions to use dev_fwnode() for struct device * cases. >> >> Sorry, I am a way too occupied :/. >> >>> Would like to get this in for v6.17 if these should be changed. >> >> It's not necessary, but a good to have cleanup (opposed to the posted fixes, >> which were required). I will switch those eventually, but I don't promise >> 6.17. (If someone does not beat me to it.) > > It's not clear from the commit log: > > irq_domain_create_simple() takes fwnode as the first argument. It can be > extracted from the struct device using dev_fwnode() helper instead of > using of_node with of_fwnode_handle(). > > So use the dev_fwnode() helper. > > why the posted fixes are required (other than Arnd's change to > altera_pcie_init_irq_domain(), which fixes an unused variable warning > when CONFIG_OF is not enabled). Sorry, my bad. These are a cleanup suggested in this series: https://lore.kernel.org/all/4bc0e1ca-a523-424a-8759-59e353317fba@kernel.org/ I.e. series switching from irq_domain_add_*() (take of_node) to irq_domain_create_*() (take fwnode). These days, fwnode is preferred and if there were no more users of of_node in changed functions, the series above even produced warnings (Arnd's and others' fixes). > Since it sounds like no changes are required for the other ones I > mentioned, I'm going to leave them alone for now: > > dw_pcie_allocate_domains() > mobiveil_allocate_msi_domains() > altera_allocate_domains() > mtk_pcie_allocate_msi_domains() > xilinx_pl_dma_pcie_init_msi_irq_domain() > nwl_pcie_init_msi_irq_domain() > plda_allocate_msi_domains() Given fwnode is always used them, it's not necessary to use dev_fwnode(). But it'd be a nice cleanup. Provided the list, I started the cleanup now :). thanks, -- js suse labs
On Wed, 11 Jun 2025 12:43:44 +0200, Jiri Slaby (SUSE) wrote:
> irq_domain_create_simple() takes fwnode as the first argument. It can be
> extracted from the struct device using dev_fwnode() helper instead of
> using of_node with of_fwnode_handle().
>
> So use the dev_fwnode() helper.
>
>
> [...]
Applied, thanks!
[1/1] pci/controller: Use dev_fwnode()
commit: 91afe85f4b282712231df9061a4528db51ce3c3b
Best regards,
--
Manivannan Sadhasivam <mani@kernel.org>
© 2016 - 2026 Red Hat, Inc.