2022-10-28 17:35:21

by Soha Jin

[permalink] [raw]
Subject: [PATCH v2] platform: use fwnode_irq_get_byname instead of of_irq_get_byname to get irq

Not only platform devices described by OF have named interrupts, but
devices described by ACPI also have named interrupts. The fwnode is an
abstraction to different standards, and using fwnode_irq_get_byname can
support more devices.

Moreover, when CONFIG_OF_IRQ is not enabled, there will be a stub method
always returning 0, the if statement can be removed safely.

Signed-off-by: Soha Jin <[email protected]>
Tested-by: Wende Tan <[email protected]>
---
drivers/base/platform.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 51bb2289865c..6cd7fd478c5f 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -441,11 +441,9 @@ static int __platform_get_irq_byname(struct platform_device *dev,
struct resource *r;
int ret;

- if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) {
- ret = of_irq_get_byname(dev->dev.of_node, name);
- if (ret > 0 || ret == -EPROBE_DEFER)
- return ret;
- }
+ ret = fwnode_irq_get_byname(dev_fwnode(&dev->dev), name);
+ if (ret > 0 || ret == -EPROBE_DEFER)
+ return ret;

r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
if (r) {
--
2.30.2



2022-11-11 08:58:55

by Soha Jin

[permalink] [raw]
Subject: RE: [PATCH v2] platform: use fwnode_irq_get_byname instead of of_irq_get_byname to get irq

> -----Original Message-----
> From: Soha Jin <[email protected]>
> Sent: Saturday, October 29, 2022 12:41 AM
>
> Not only platform devices described by OF have named interrupts, but
> devices described by ACPI also have named interrupts. The fwnode is an
> abstraction to different standards, and using fwnode_irq_get_byname can
> support more devices.
>
> Moreover, when CONFIG_OF_IRQ is not enabled, there will be a stub method
> always returning 0, the if statement can be removed safely.
>
> Signed-off-by: Soha Jin <[email protected]>
> Tested-by: Wende Tan <[email protected]>
> ---
> drivers/base/platform.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/base/platform.c b/drivers/base/platform.c index
> 51bb2289865c..6cd7fd478c5f 100644
> --- a/drivers/base/platform.c
> +++ b/drivers/base/platform.c
> @@ -441,11 +441,9 @@ static int __platform_get_irq_byname(struct
> platform_device *dev,
> struct resource *r;
> int ret;
>
> - if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) {
> - ret = of_irq_get_byname(dev->dev.of_node, name);
> - if (ret > 0 || ret == -EPROBE_DEFER)
> - return ret;
> - }
> + ret = fwnode_irq_get_byname(dev_fwnode(&dev->dev), name);
> + if (ret > 0 || ret == -EPROBE_DEFER)
> + return ret;
>
> r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
> if (r) {
> --
> 2.30.2
>

Hello Greg,

I noticed the original patch is merged into -next branch, but as I said in
the mail yesterday (maybe you did not see it), I already composed a v2
patch 2 weeks ago. Except the formatting fix, this patch also removed a
useless if-branch.

Are there any chance to correct this mistake?

Regards,
Soha

2022-11-11 09:15:15

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH v2] platform: use fwnode_irq_get_byname instead of of_irq_get_byname to get irq

On Fri, Nov 11, 2022 at 08:30:46AM +0000, Soha Jin wrote:
> > -----Original Message-----
> > From: Soha Jin <[email protected]>
> > Sent: Saturday, October 29, 2022 12:41 AM
> >
> > Not only platform devices described by OF have named interrupts, but
> > devices described by ACPI also have named interrupts. The fwnode is an
> > abstraction to different standards, and using fwnode_irq_get_byname can
> > support more devices.
> >
> > Moreover, when CONFIG_OF_IRQ is not enabled, there will be a stub method
> > always returning 0, the if statement can be removed safely.
> >
> > Signed-off-by: Soha Jin <[email protected]>
> > Tested-by: Wende Tan <[email protected]>
> > ---
> > drivers/base/platform.c | 8 +++-----
> > 1 file changed, 3 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/base/platform.c b/drivers/base/platform.c index
> > 51bb2289865c..6cd7fd478c5f 100644
> > --- a/drivers/base/platform.c
> > +++ b/drivers/base/platform.c
> > @@ -441,11 +441,9 @@ static int __platform_get_irq_byname(struct
> > platform_device *dev,
> > struct resource *r;
> > int ret;
> >
> > - if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) {
> > - ret = of_irq_get_byname(dev->dev.of_node, name);
> > - if (ret > 0 || ret == -EPROBE_DEFER)
> > - return ret;
> > - }
> > + ret = fwnode_irq_get_byname(dev_fwnode(&dev->dev), name);
> > + if (ret > 0 || ret == -EPROBE_DEFER)
> > + return ret;
> >
> > r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name);
> > if (r) {
> > --
> > 2.30.2
> >
>
> Hello Greg,
>
> I noticed the original patch is merged into -next branch, but as I said in
> the mail yesterday (maybe you did not see it), I already composed a v2
> patch 2 weeks ago. Except the formatting fix, this patch also removed a
> useless if-branch.
>
> Are there any chance to correct this mistake?

Please submit a fixup patch, sorry, I can't rebase that branch now.

greg k-h

2022-11-11 10:00:27

by Soha Jin

[permalink] [raw]
Subject: RE: [PATCH v2] platform: use fwnode_irq_get_byname instead of of_irq_get_byname to get irq

> -----Original Message-----
> From: Greg Kroah-Hartman <[email protected]>
> Sent: Friday, November 11, 2022 4:52 PM
>
> Please submit a fixup patch, sorry, I can't rebase that branch now.
>
> greg k-h

Got it, I withdraw this patch.

Soha