Thread (18 messages) 18 messages, 5 authors, 2012-09-19

[PATCH 1/1] Input: ab8500-ponkey: Make the distinction between DT and non-DT boots

flat view

From: Lee Jones <hidden>
Date: 2012-08-07 17:01:40
Also in: linux-input, lkml

On Mon, Aug 06, 2012 at 05:02:26PM +0100, Mark Brown wrote:
On Mon, Aug 06, 2012 at 04:37:52PM +0100, Lee Jones wrote:
quoted
On Mon, Aug 06, 2012 at 01:19:15AM -0700, Dmitry Torokhov wrote:
quoted
quoted
quoted
+	ponkey->irq_dbf = (np) ? ab8500_irq_get_virq(ab8500, irq_dbf) : irq_dbf;
+	ponkey->irq_dbr = (np) ? ab8500_irq_get_virq(ab8500, irq_dbr) : irq_dbr;
quoted
quoted
Why this isn't done inside ab8500_irq_get_virq()?
quoted
There's no reason why it can't be.
quoted
My first version of the patch did just that in fact.
quoted
Would that be your preference?
Restating my comment elsewhere...  why do we even need to do this in
_get_virq() - I'd *really* expect this to be handled by the irq domain
code.
Okay, so I've just spent a small amount of time looking at this. I think
the best place for this would be in *_get_virq(), using the same logic that
selected a *_legacy or *_linear domain in the first place. The only thing 
the domain can test for is the 'type' of domain and the requested IRQ. This
is where the issue lies. If a hwirq to virq conversion is requested, but a
virq is passed (which happens in the non-DT case) a WARN() is triggered
because the irq passed is bigger than first_irq + size. I think *_get_virq()
should ensure that only a hwirq is passed to irq_create_mapping().

Let me know if you had other ideas.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help