linux/arch/arm/mach-versatile
Linus Walleij e3e92a7be6 ARM: 7635/1: versatile: fix the PCI IRQ regression
The PCI IRQs were regressing due to two things:

- The PCI glue layer was using an hard-coded IRQ 27 offset.
  This caused the immediate regression.

- The SIC IRQ mask was inverted (i.e. a bit was indeed set to
  one for each valid IRQ on the SIC, but accidentally inverted
  in the init call). This has been around forever, but we have
  been saved by some other forgiving code that would reserve
  IRQ descriptors in this range, as the versatile is
  non-sparse.

When the IRQs were bumped up 32 steps so as to avoid using IRQ
zero and avoid touching the 16 legacy IRQs, things broke.

Introduce an explicit valid mask for the IRQs that are active
on the PIC/SIC, and pass that. Use the BIT() macro from
<linux/bitops.h> to make sure we hit the right bits, readily
defined in <mach/platform.h>.

Reported-by: Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2013-02-06 09:33:09 +00:00
..
include/mach ARM: 7610/1: versatile: bump IRQ numbers 2013-01-02 10:35:06 +00:00
core.c ARM: 7635/1: versatile: fix the PCI IRQ regression 2013-02-06 09:33:09 +00:00
core.h ARM: amba: versatile: get rid of private platform amba_device initializer 2012-01-25 11:04:03 +00:00
Kconfig ARM: config: sort select statements alphanumerically 2012-10-13 17:11:28 +01:00
Makefile
Makefile.boot
pci.c ARM: 7635/1: versatile: fix the PCI IRQ regression 2013-02-06 09:33:09 +00:00
versatile_ab.c Merge branch 'driver-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core 2012-01-07 12:03:30 -08:00
versatile_dt.c Merge branch 'restart' into for-linus 2012-01-05 13:25:27 +00:00
versatile_pb.c ARM: amba: versatile: get rid of private platform amba_device initializer 2012-01-25 11:04:03 +00:00