[ARM] 3021/1: Interrupt 0 bug fix for ixp4xx
authorKenneth Tan <chong.yin.tan@intel.com>
Tue, 18 Oct 2005 06:53:35 +0000 (07:53 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 18 Oct 2005 06:53:35 +0000 (07:53 +0100)
commit251b928cdff5f12e7da8f56e8933e2b58ba08456
treedc978d9a44e865063b1cfb4606c03bae1b6e4eab
parentad1b472bea1bbcd8dc7fd92f6952d8b2d8355edb
[ARM] 3021/1: Interrupt 0 bug fix for ixp4xx

Patch from Kenneth Tan

The get_irqnr_and_base subroutine of ixp4xx does not take interrupt 0 condition into account properly. We should not perform "subs" here. The Z flag will be set when interrupt 0 occur, which resulting "movne r1, sp" in the caller routine (irq_handler) not being executed.

When interrupt 0 occur:
o if CONFIG_CPU_IXP46X is not set, "subs" will set the Z flag and return
o if CONFIG_CPU_IXP46X is set, codes in upper interrupt handling will be trigerred. But since this is not supper interrupt, the "cmp" in the upper interrupt handling portion will set the Z flag and return

Signed-off-by: Kenneth Tan <chong.yin.tan@intel.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/asm-arm/arch-ixp4xx/entry-macro.S