On Thu, Dec 15, 2011 at 07:56:41AM -0600, Rob Herring wrote:
[...]
quoted
quoted
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index eb763f7..2a2aac1 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -39,7 +39,7 @@ void irq_domain_add(struct irq_domain *domain)
return;
}
d->domain = domain;
- d->hwirq = hwirq;
+ d->hwirq = hwirq - domain->hwirq_base;
This is a problem. It entirely defeats the point of hwirq_base and it
would break the GIC. We need to fix this in the generic irq chip.
I think I found a fix. Can you try 's/d->hwirq/(d->hwirq % 32)/' in
generic-chip.c.
Needless to try (will try later), this will work. But again, what do
we need to change 'd->irq - d->irq_base' at all?
--
Regards,
Shawn