Remove unnecessary init bits, and disable the vectored interrupt mechanism. Index: linux-2.6.16/arch/arm/common/vic.c =================================================================== --- linux-2.6.16.orig/arch/arm/common/vic.c +++ linux-2.6.16/arch/arm/common/vic.c @@ -59,9 +59,7 @@ void __init vic_init(void __iomem *base, /* Disable all interrupts initially. */ writel(0, base + VIC_INT_SELECT); - writel(0, base + VIC_INT_ENABLE); writel(~0, base + VIC_INT_ENABLE_CLEAR); - writel(0, base + VIC_IRQ_STATUS); writel(0, base + VIC_ITCR); writel(~0, base + VIC_INT_SOFT_CLEAR); @@ -78,7 +76,8 @@ void __init vic_init(void __iomem *base, for (i = 0; i < 16; i++) { void __iomem *reg = base + VIC_VECT_CNTL0 + (i * 4); - writel(VIC_VECT_CNTL_ENABLE | i, reg); +// writel(VIC_VECT_CNTL_ENABLE | i, reg); + writel(0, reg); } writel(32, base + VIC_DEF_VECT_ADDR);