RE: [PATCH] regmap-irq: allow auto-allocated IRQs to be mapped

Opensource [Anthony Olech]
2012-08-05T19:57:43Z

Hi Mark,

I am not testing the da9052 driver, but the da9058 that I recently submitted.

The problem is that the auto allocated "irq_base" comes back as zero.

I repeat - in v3.4 the daa9058 driver work, but fails (without my patch) in v3.5

If my suggested fix is not acceptable, then is it possible to fix the bug in some other way?

thanks,

Tony Olech

-----Original Message-----
From: Mark Brown [mailto:broonie@opensource.wolfsonmicro.com]
Sent: 04 August 2012 11:54
To: Opensource [Anthony Olech]
Cc: LKML; Anthony Olech; David Dajun Chen
Subject: Re: [PATCH] regmap-irq: allow auto-allocated IRQs to be mapped

On Wed, Aug 01, 2012 at 07:05:15PM +0100, Anthony Olech wrote:

> if the irq_base is set to -1 when calling regmap_add_irq_chip() then
> allow the IRQ to be mapped even if the allocated irq_base is actually
> zero.

> This restores the behaviour seen in v3.4, and I assume that the
> tidy-ups just made in v3.5 INADVERTENTLY introduce this change in
> behaviour.

Please pay MORE attention to the changelog - obviously there's no problem mapping automatically allocated IRQs, there's only any effect if they happen to GET allocated at zero.

The only real issue I see with the current code is that if the user explicitly wants to statically allocate an IRQ range at zero they can't.
The current intended behaviour is that we use a linear domain unless a positive IRQ base is specified, though we're not quite doing that right now as a transitional measure until drivers are updated.

The current da9052 driver usage seems to have quite a few problems, I do recall having to fix some problems that make me doubt if it ever worked well. Looking at the code now I see it's using hard coded references to absolute IRQ numbers which is an issue... It should be being converted to use regmap_irq_get_virq().