From: Wu Zhangjin <wuzhangjin@xxxxxxxxx> As reported by Maxime Bizon, the commit "MIPS: PowerTV: Fix support for timer interrupts with > 64 external IRQs" have broken the r4k timer since it didn't initialize the cp0_compare_irq_shift variable used in c0_compare_int_pending() on the architectures whose cpu_has_mips_r2 is false. This patch fixes it via initializing the cp0_compare_irq_shift as the cp0_compare_irq used in the old c0_compare_int_pending(). Reported-by: Maxime Bizon <mbizon@xxxxxxxxxx> Signed-off-by: Wu Zhangjin <wuzhangjin@xxxxxxxxx> Cc: David VomLehn <dvomlehn@xxxxxxxxx> Cc: mbizon@xxxxxxxxxx Cc: linux-mips@xxxxxxxxxxxxxx Patchwork: http://patchwork.linux-mips.org/patch/922/ Tested-by: Shane McDonald <mcdonald.shane@xxxxxxxxx> Signed-off-by: Ralf Baechle <ralf@xxxxxxxxxxxxxx> arch/mips/kernel/traps.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) --- http://git.linuxtv.org/v4l-dvb.git?a=commitdiff;h=f4fc580bec5fb76560329c8c537b9b71d8d032b6 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 338dfe8..31b204b 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -1501,6 +1501,7 @@ void __cpuinit per_cpu_trap_init(void) cp0_perfcount_irq = -1; } else { cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; + cp0_compare_irq_shift = cp0_compare_irq; cp0_perfcount_irq = -1; }