From: David Brownell Date: Fri, 4 Jan 2008 17:30:24 +0000 (+0100) Subject: [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work X-Git-Tag: v2.6.25-rc1~1055^2~3 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e83aff58bf1b7e6b355a0cfa206e9d3aebe5623f;p=pandora-kernel.git [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work On the at91sam9263, IRQs for GPIO banks C and D don't currently work. This is because banks C, D, and E share one clock and toplevel IRQ, but the AT91 code setting up and handling GPIO IRQs expects no sharing. This patch: - Fixes GPIO IRQ setup and handling to cope with GPIO banks that are shared like on sam9263 chips, by setting up a list of those banks and making the IRQ dispatching logic scan that list. - Precomputes the address of each bank's registers, saving it with other per-bank data so that it no longer needs to be constantly recomputed during IRQs and other GPIO operations. That shrinks hot-path code, while helping the GPIO bank irq updates. - Fixes a minor bug where IRQ_TYPE_NONE was wrongly rejected (it just means "use the default", which is "both edges" here). Signed-off-by: David Brownell Acked-by: Andrew Victor Signed-off-by: Russell King --- Reading git-diff-tree failed