All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] gpio: Use platform_get_irq*() variants to fetch IRQ's
@ 2021-12-22 17:19 Lad Prabhakar
  2021-12-22 17:19 ` [PATCH 1/2] gpio: ts5500: Use platform_get_irq() to get the interrupt Lad Prabhakar
  2021-12-22 17:19 ` [PATCH 2/2] gpio: rcar: " Lad Prabhakar
  0 siblings, 2 replies; 7+ messages in thread
From: Lad Prabhakar @ 2021-12-22 17:19 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, linux-gpio
  Cc: Rob Herring, linux-kernel, linux-renesas-soc, Prabhakar, Lad Prabhakar

Hi All,

This patch series aims to drop using platform_get_resource() for IRQ types
in preparation for removal of static setup of IRQ resource from DT core
code.

Dropping usage of platform_get_resource() was agreed based on
the discussion [0].

[0] https://patchwork.kernel.org/project/linux-renesas-soc/
patch/20211209001056.29774-1-prabhakar.mahadev-lad.rj@bp.renesas.com/

Cheers,
Prabhakar

Lad Prabhakar (2):
  gpio: ts5500: Use platform_get_irq() to get the interrupt
  gpio: rcar: Use platform_get_irq() to get the interrupt

 drivers/gpio/gpio-rcar.c   | 12 ++++--------
 drivers/gpio/gpio-ts5500.c | 11 ++++-------
 2 files changed, 8 insertions(+), 15 deletions(-)

-- 
2.17.1


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

* [PATCH 1/2] gpio: ts5500: Use platform_get_irq() to get the interrupt
  2021-12-22 17:19 [PATCH 0/2] gpio: Use platform_get_irq*() variants to fetch IRQ's Lad Prabhakar
@ 2021-12-22 17:19 ` Lad Prabhakar
  2022-01-05  9:24   ` Bartosz Golaszewski
  2021-12-22 17:19 ` [PATCH 2/2] gpio: rcar: " Lad Prabhakar
  1 sibling, 1 reply; 7+ messages in thread
From: Lad Prabhakar @ 2021-12-22 17:19 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, linux-gpio
  Cc: Rob Herring, linux-kernel, linux-renesas-soc, Prabhakar, Lad Prabhakar

platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq().

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
 drivers/gpio/gpio-ts5500.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/drivers/gpio/gpio-ts5500.c b/drivers/gpio/gpio-ts5500.c
index c91890488402..b159e92a3612 100644
--- a/drivers/gpio/gpio-ts5500.c
+++ b/drivers/gpio/gpio-ts5500.c
@@ -317,22 +317,19 @@ static int ts5500_dio_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	const char *name = dev_name(dev);
 	struct ts5500_priv *priv;
-	struct resource *res;
 	unsigned long flags;
 	int ret;
 
-	res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-	if (!res) {
-		dev_err(dev, "missing IRQ resource\n");
-		return -EINVAL;
-	}
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
+		return ret;
 
 	priv = devm_kzalloc(dev, sizeof(struct ts5500_priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
 
 	platform_set_drvdata(pdev, priv);
-	priv->hwirq = res->start;
+	priv->hwirq = ret;
 	spin_lock_init(&priv->lock);
 
 	priv->gpio_chip.owner = THIS_MODULE;
-- 
2.17.1


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

* [PATCH 2/2] gpio: rcar: Use platform_get_irq() to get the interrupt
  2021-12-22 17:19 [PATCH 0/2] gpio: Use platform_get_irq*() variants to fetch IRQ's Lad Prabhakar
  2021-12-22 17:19 ` [PATCH 1/2] gpio: ts5500: Use platform_get_irq() to get the interrupt Lad Prabhakar
@ 2021-12-22 17:19 ` Lad Prabhakar
  2021-12-25 14:49   ` Andy Shevchenko
  2022-01-05  9:24   ` Bartosz Golaszewski
  1 sibling, 2 replies; 7+ messages in thread
From: Lad Prabhakar @ 2021-12-22 17:19 UTC (permalink / raw)
  To: Linus Walleij, Bartosz Golaszewski, linux-gpio
  Cc: Rob Herring, linux-kernel, linux-renesas-soc, Prabhakar, Lad Prabhakar

platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq().

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
 drivers/gpio/gpio-rcar.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
index f7b653314e7e..437baecc434e 100644
--- a/drivers/gpio/gpio-rcar.c
+++ b/drivers/gpio/gpio-rcar.c
@@ -477,7 +477,6 @@ static void gpio_rcar_enable_inputs(struct gpio_rcar_priv *p)
 static int gpio_rcar_probe(struct platform_device *pdev)
 {
 	struct gpio_rcar_priv *p;
-	struct resource *irq;
 	struct gpio_chip *gpio_chip;
 	struct irq_chip *irq_chip;
 	struct gpio_irq_chip *girq;
@@ -502,12 +501,10 @@ static int gpio_rcar_probe(struct platform_device *pdev)
 
 	pm_runtime_enable(dev);
 
-	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-	if (!irq) {
-		dev_err(dev, "missing IRQ\n");
-		ret = -EINVAL;
+	ret = platform_get_irq(pdev, 0);
+	if (ret < 0)
 		goto err0;
-	}
+	p->irq_parent = ret;
 
 	p->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(p->base)) {
@@ -555,8 +552,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
 		goto err0;
 	}
 
-	p->irq_parent = irq->start;
-	if (devm_request_irq(dev, irq->start, gpio_rcar_irq_handler,
+	if (devm_request_irq(dev, p->irq_parent, gpio_rcar_irq_handler,
 			     IRQF_SHARED, name, p)) {
 		dev_err(dev, "failed to request IRQ\n");
 		ret = -ENOENT;
-- 
2.17.1


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

* Re: [PATCH 2/2] gpio: rcar: Use platform_get_irq() to get the interrupt
  2021-12-22 17:19 ` [PATCH 2/2] gpio: rcar: " Lad Prabhakar
@ 2021-12-25 14:49   ` Andy Shevchenko
  2021-12-25 14:54     ` Lad, Prabhakar
  2022-01-05  9:24   ` Bartosz Golaszewski
  1 sibling, 1 reply; 7+ messages in thread
From: Andy Shevchenko @ 2021-12-25 14:49 UTC (permalink / raw)
  To: Lad Prabhakar
  Cc: Linus Walleij, Bartosz Golaszewski, open list:GPIO SUBSYSTEM,
	Rob Herring, Linux Kernel Mailing List, Linux-Renesas, Prabhakar

On Fri, Dec 24, 2021 at 9:21 PM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
>
> platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
> allocation of IRQ resources in DT core code, this causes an issue
> when using hierarchical interrupt domains using "interrupts" property
> in the node as this bypassed the hierarchical setup and messed up the
> irq chaining.
>
> In preparation for removal of static setup of IRQ resource from DT core
> code use platform_get_irq().

...

> -       if (devm_request_irq(dev, irq->start, gpio_rcar_irq_handler,
> +       if (devm_request_irq(dev, p->irq_parent, gpio_rcar_irq_handler,
>                              IRQF_SHARED, name, p)) {
>                 dev_err(dev, "failed to request IRQ\n");
>                 ret = -ENOENT;

While at it, you may unshadow the error code
ret = devm_request_irq(...);
if (ret) {
  ...
}

-- 
With Best Regards,
Andy Shevchenko

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

* Re: [PATCH 2/2] gpio: rcar: Use platform_get_irq() to get the interrupt
  2021-12-25 14:49   ` Andy Shevchenko
@ 2021-12-25 14:54     ` Lad, Prabhakar
  0 siblings, 0 replies; 7+ messages in thread
From: Lad, Prabhakar @ 2021-12-25 14:54 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Lad Prabhakar, Linus Walleij, Bartosz Golaszewski,
	open list:GPIO SUBSYSTEM, Rob Herring, Linux Kernel Mailing List,
	Linux-Renesas

Hi Andy,

Thank you for the review.

On Sat, Dec 25, 2021 at 2:49 PM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
>
> On Fri, Dec 24, 2021 at 9:21 PM Lad Prabhakar
> <prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
> >
> > platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
> > allocation of IRQ resources in DT core code, this causes an issue
> > when using hierarchical interrupt domains using "interrupts" property
> > in the node as this bypassed the hierarchical setup and messed up the
> > irq chaining.
> >
> > In preparation for removal of static setup of IRQ resource from DT core
> > code use platform_get_irq().
>
> ...
>
> > -       if (devm_request_irq(dev, irq->start, gpio_rcar_irq_handler,
> > +       if (devm_request_irq(dev, p->irq_parent, gpio_rcar_irq_handler,
> >                              IRQF_SHARED, name, p)) {
> >                 dev_err(dev, "failed to request IRQ\n");
> >                 ret = -ENOENT;
>
> While at it, you may unshadow the error code
> ret = devm_request_irq(...);
> if (ret) {
>   ...
> }
>
Agreed, will do.

Cheers,
Prabhakar

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

* Re: [PATCH 1/2] gpio: ts5500: Use platform_get_irq() to get the interrupt
  2021-12-22 17:19 ` [PATCH 1/2] gpio: ts5500: Use platform_get_irq() to get the interrupt Lad Prabhakar
@ 2022-01-05  9:24   ` Bartosz Golaszewski
  0 siblings, 0 replies; 7+ messages in thread
From: Bartosz Golaszewski @ 2022-01-05  9:24 UTC (permalink / raw)
  To: Lad Prabhakar
  Cc: Linus Walleij, open list:GPIO SUBSYSTEM, Rob Herring,
	Linux Kernel Mailing List, Linux-Renesas, Prabhakar

On Wed, Dec 22, 2021 at 6:19 PM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
>
> platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
> allocation of IRQ resources in DT core code, this causes an issue
> when using hierarchical interrupt domains using "interrupts" property
> in the node as this bypassed the hierarchical setup and messed up the
> irq chaining.
>
> In preparation for removal of static setup of IRQ resource from DT core
> code use platform_get_irq().
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---
>  drivers/gpio/gpio-ts5500.c | 11 ++++-------
>  1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpio/gpio-ts5500.c b/drivers/gpio/gpio-ts5500.c
> index c91890488402..b159e92a3612 100644
> --- a/drivers/gpio/gpio-ts5500.c
> +++ b/drivers/gpio/gpio-ts5500.c
> @@ -317,22 +317,19 @@ static int ts5500_dio_probe(struct platform_device *pdev)
>         struct device *dev = &pdev->dev;
>         const char *name = dev_name(dev);
>         struct ts5500_priv *priv;
> -       struct resource *res;
>         unsigned long flags;
>         int ret;
>
> -       res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> -       if (!res) {
> -               dev_err(dev, "missing IRQ resource\n");
> -               return -EINVAL;
> -       }
> +       ret = platform_get_irq(pdev, 0);
> +       if (ret < 0)
> +               return ret;
>
>         priv = devm_kzalloc(dev, sizeof(struct ts5500_priv), GFP_KERNEL);
>         if (!priv)
>                 return -ENOMEM;
>
>         platform_set_drvdata(pdev, priv);
> -       priv->hwirq = res->start;
> +       priv->hwirq = ret;
>         spin_lock_init(&priv->lock);
>
>         priv->gpio_chip.owner = THIS_MODULE;
> --
> 2.17.1
>

Applied, thanks!

Bart

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

* Re: [PATCH 2/2] gpio: rcar: Use platform_get_irq() to get the interrupt
  2021-12-22 17:19 ` [PATCH 2/2] gpio: rcar: " Lad Prabhakar
  2021-12-25 14:49   ` Andy Shevchenko
@ 2022-01-05  9:24   ` Bartosz Golaszewski
  1 sibling, 0 replies; 7+ messages in thread
From: Bartosz Golaszewski @ 2022-01-05  9:24 UTC (permalink / raw)
  To: Lad Prabhakar
  Cc: Linus Walleij, open list:GPIO SUBSYSTEM, Rob Herring,
	Linux Kernel Mailing List, Linux-Renesas, Prabhakar

On Wed, Dec 22, 2021 at 6:19 PM Lad Prabhakar
<prabhakar.mahadev-lad.rj@bp.renesas.com> wrote:
>
> platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
> allocation of IRQ resources in DT core code, this causes an issue
> when using hierarchical interrupt domains using "interrupts" property
> in the node as this bypassed the hierarchical setup and messed up the
> irq chaining.
>
> In preparation for removal of static setup of IRQ resource from DT core
> code use platform_get_irq().
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---

Applied, thanks!

Bart

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

end of thread, other threads:[~2022-01-05  9:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-22 17:19 [PATCH 0/2] gpio: Use platform_get_irq*() variants to fetch IRQ's Lad Prabhakar
2021-12-22 17:19 ` [PATCH 1/2] gpio: ts5500: Use platform_get_irq() to get the interrupt Lad Prabhakar
2022-01-05  9:24   ` Bartosz Golaszewski
2021-12-22 17:19 ` [PATCH 2/2] gpio: rcar: " Lad Prabhakar
2021-12-25 14:49   ` Andy Shevchenko
2021-12-25 14:54     ` Lad, Prabhakar
2022-01-05  9:24   ` Bartosz Golaszewski

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.