]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/ppc/syslib/ppc4xx_pic.c
Automatic merge of /spare/repo/netdev-2.6 branch 8139cp
[linux-2.6-omap-h63xx.git] / arch / ppc / syslib / ppc4xx_pic.c
index 08f06dd17e7baa20ceafffe6ed3a6e40d38cd813..05686fa73545bf83838a91c605c19e0860e36465 100644 (file)
@@ -41,7 +41,10 @@ extern unsigned char ppc4xx_uic_ext_irq_cfg[] __attribute__ ((weak));
 #define UIC_HANDLERS(n)                                                        \
 static void ppc4xx_uic##n##_enable(unsigned int irq)                   \
 {                                                                      \
-       ppc_cached_irq_mask[n] |= IRQ_MASK_UIC##n(irq);                 \
+       u32 mask = IRQ_MASK_UIC##n(irq);                                \
+       if (irq_desc[irq].status & IRQ_LEVEL)                           \
+               mtdcr(DCRN_UIC_SR(UIC##n), mask);                       \
+       ppc_cached_irq_mask[n] |= mask;                                 \
        mtdcr(DCRN_UIC_ER(UIC##n), ppc_cached_irq_mask[n]);             \
 }                                                                      \
                                                                        \