Message ID | f38e80b6b439e4a9cc349a090923207865b3d3ed.1617189926.git.matthias.schiffer@ew.tq-group.com |
---|---|
State | New |
Headers | show |
Series | tqmx86: TQMxE40M support | expand |
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. > }
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. > > > } > >
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 --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);
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(+)