1. 04 2月, 2008 1 次提交
    • D
      [ARM] 4739/1: at91sam9263: make gpio bank C and D irqs work · e83aff58
      David Brownell 提交于
      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: NDavid Brownell <dbrownell@users.sourceforge.net>
      Acked-by: NAndrew Victor <linux@maxim.org.za>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      e83aff58
  2. 02 2月, 2008 39 次提交