MIPS: PowerTV: Fix support for timer interrupts with > 64 external IRQs
The MIPS processor is limited to 64 external interrupt sources. Using a greater number without IRQ sharing requires reading platform-specific registers. On such platforms, reading the IntCtl register to determine which interrupt corresponds to a timer interrupt will not work. On MIPSR2 systems there is a solution - the TI bit in the Cause register, specifically indicates that a timer interrupt has occured. This patch uses that bit to detect interrupts for MIPSR2 processors, which may be expected to work regardless of how the timer interrupt may be routed in the hardware. Signed-off-by: David VomLehn (dvomlehn@cisco.com) To: linux-mips@linux-mips.org Patchwork: http://patchwork.linux-mips.org/patch/804/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:

committed by
Ralf Baechle

parent
59dfa2fcae
commit
010c108d7a
@@ -97,7 +97,7 @@ void mips_event_handler(struct clock_event_device *dev)
|
||||
*/
|
||||
static int c0_compare_int_pending(void)
|
||||
{
|
||||
return (read_c0_cause() >> cp0_compare_irq) & 0x100;
|
||||
return (read_c0_cause() >> cp0_compare_irq_shift) & (1ul << CAUSEB_IP);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user