diff options
Diffstat (limited to 'arch/ppc/syslib/ppc4xx_pic.c')
-rw-r--r-- | arch/ppc/syslib/ppc4xx_pic.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/ppc/syslib/ppc4xx_pic.c b/arch/ppc/syslib/ppc4xx_pic.c index 08f06dd17e7b..05686fa73545 100644 --- a/arch/ppc/syslib/ppc4xx_pic.c +++ b/arch/ppc/syslib/ppc4xx_pic.c | |||
@@ -41,7 +41,10 @@ extern unsigned char ppc4xx_uic_ext_irq_cfg[] __attribute__ ((weak)); | |||
41 | #define UIC_HANDLERS(n) \ | 41 | #define UIC_HANDLERS(n) \ |
42 | static void ppc4xx_uic##n##_enable(unsigned int irq) \ | 42 | static void ppc4xx_uic##n##_enable(unsigned int irq) \ |
43 | { \ | 43 | { \ |
44 | ppc_cached_irq_mask[n] |= IRQ_MASK_UIC##n(irq); \ | 44 | u32 mask = IRQ_MASK_UIC##n(irq); \ |
45 | if (irq_desc[irq].status & IRQ_LEVEL) \ | ||
46 | mtdcr(DCRN_UIC_SR(UIC##n), mask); \ | ||
47 | ppc_cached_irq_mask[n] |= mask; \ | ||
45 | mtdcr(DCRN_UIC_ER(UIC##n), ppc_cached_irq_mask[n]); \ | 48 | mtdcr(DCRN_UIC_ER(UIC##n), ppc_cached_irq_mask[n]); \ |
46 | } \ | 49 | } \ |
47 | \ | 50 | \ |