diff mbox series

[2/3] mfd: tqmx86: clear GPIO IRQ resource when no IRQ is set

Message ID f38e80b6b439e4a9cc349a090923207865b3d3ed.1617189926.git.matthias.schiffer@ew.tq-group.com
State New
Headers show
Series tqmx86: TQMxE40M support | expand

Commit Message

Matthias Schiffer March 31, 2021, 11:35 a.m. UTC
The driver was registering IRQ 0 when no IRQ was set. This leads to
warnings with newer kernels.

Clear the resource flags, so no resource is registered at all in this
case.

Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
---
 drivers/mfd/tqmx86.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Andy Shevchenko March 31, 2021, 12:35 p.m. UTC | #1
On Wed, Mar 31, 2021 at 2:39 PM Matthias Schiffer
<matthias.schiffer@ew.tq-group.com> wrote:
>
> The driver was registering IRQ 0 when no IRQ was set. This leads to
> warnings with newer kernels.
>
> Clear the resource flags, so no resource is registered at all in this
> case.

...

>                 /* Assumes the IRQ resource is first. */
>                 tqmx_gpio_resources[0].start = gpio_irq;
> +       } else {
> +               tqmx_gpio_resources[0].flags = 0;

Please set IORESOURCE_DISABLED flag in the initial structure instead.

>         }
Matthias Schiffer March 31, 2021, 1:24 p.m. UTC | #2
On Wed, 2021-03-31 at 15:35 +0300, Andy Shevchenko wrote:
> On Wed, Mar 31, 2021 at 2:39 PM Matthias Schiffer
> <matthias.schiffer@ew.tq-group.com> wrote:
> > 
> > The driver was registering IRQ 0 when no IRQ was set. This leads to
> > warnings with newer kernels.
> > 
> > Clear the resource flags, so no resource is registered at all in this
> > case.
> 
> ...
> 
> >                 /* Assumes the IRQ resource is first. */
> >                 tqmx_gpio_resources[0].start = gpio_irq;
> > +       } else {
> > +               tqmx_gpio_resources[0].flags = 0;
> 
> Please set IORESOURCE_DISABLED flag in the initial structure instead.

Is there any documentation for the correct usage of this flag? I think
I tried IORESOURCE_DISABLED originally, but it didn't have any effect
(platform_get_irq() ignored the flag and returned the resource
anyways). I might misremember though, I originally wrote the series
some time ago.


> 
> >         }
> 
>
Andy Shevchenko March 31, 2021, 2:10 p.m. UTC | #3
On Wed, Mar 31, 2021 at 4:24 PM Matthias Schiffer
<matthias.schiffer@ew.tq-group.com> wrote:
> On Wed, 2021-03-31 at 15:35 +0300, Andy Shevchenko wrote:
> > On Wed, Mar 31, 2021 at 2:39 PM Matthias Schiffer
> > <matthias.schiffer@ew.tq-group.com> wrote:

...

> > > +               tqmx_gpio_resources[0].flags = 0;
> >
> > Please set IORESOURCE_DISABLED flag in the initial structure instead.
>
> Is there any documentation for the correct usage of this flag? I think
> I tried IORESOURCE_DISABLED originally, but it didn't have any effect
> (platform_get_irq() ignored the flag and returned the resource
> anyways). I might misremember though, I originally wrote the series
> some time ago.

It seems this flag is used solely for ACPI / PNP resources...
Hmm... I dunno how platorm_get_irq*() should respect this flag. You
see, that in the ACPI branch it has been checked there.
diff mbox series

Patch

diff --git a/drivers/mfd/tqmx86.c b/drivers/mfd/tqmx86.c
index ddddf08b6a4c..732013f40e4e 100644
--- a/drivers/mfd/tqmx86.c
+++ b/drivers/mfd/tqmx86.c
@@ -209,6 +209,8 @@  static int tqmx86_probe(struct platform_device *pdev)
 
 		/* Assumes the IRQ resource is first. */
 		tqmx_gpio_resources[0].start = gpio_irq;
+	} else {
+		tqmx_gpio_resources[0].flags = 0;
 	}
 
 	ocores_platfom_data.clock_khz = tqmx86_board_id_to_clk_rate(board_id);