diff options
Diffstat (limited to 'arch/m32r/kernel/entry.S')
-rw-r--r-- | arch/m32r/kernel/entry.S | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S index f6d4a5821a2c..3871b65f0c82 100644 --- a/arch/m32r/kernel/entry.S +++ b/arch/m32r/kernel/entry.S | |||
@@ -315,7 +315,7 @@ ENTRY(ei_handler) | |||
315 | mv r1, sp ; arg1(regs) | 315 | mv r1, sp ; arg1(regs) |
316 | #if defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_XNUX2) \ | 316 | #if defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_XNUX2) \ |
317 | || defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_M32102) \ | 317 | || defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_M32102) \ |
318 | || defined(CONFIG_CHIP_OPSP) | 318 | || defined(CONFIG_CHIP_OPSP) || defined(CONFIG_CHIP_M32104) |
319 | 319 | ||
320 | ; GET_ICU_STATUS; | 320 | ; GET_ICU_STATUS; |
321 | seth r0, #shigh(M32R_ICU_ISTS_ADDR) | 321 | seth r0, #shigh(M32R_ICU_ISTS_ADDR) |
@@ -541,7 +541,20 @@ check_int2: | |||
541 | bra check_end | 541 | bra check_end |
542 | .fillinsn | 542 | .fillinsn |
543 | check_end: | 543 | check_end: |
544 | #endif /* CONFIG_PLAT_OPSPUT */ | 544 | #elif defined(CONFIG_PLAT_M32104UT) |
545 | add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt | ||
546 | bnez r2, check_end | ||
547 | ; read ICU status register of PLD | ||
548 | seth r0, #high(PLD_ICUISTS) | ||
549 | or3 r0, r0, #low(PLD_ICUISTS) | ||
550 | lduh r0, @r0 | ||
551 | slli r0, #21 | ||
552 | srli r0, #27 ; ISN | ||
553 | addi r0, #(M32104UT_PLD_IRQ_BASE) | ||
554 | bra check_end | ||
555 | .fillinsn | ||
556 | check_end: | ||
557 | #endif /* CONFIG_PLAT_M32104UT */ | ||
545 | bl do_IRQ | 558 | bl do_IRQ |
546 | #endif /* CONFIG_SMP */ | 559 | #endif /* CONFIG_SMP */ |
547 | ld r14, @sp+ | 560 | ld r14, @sp+ |