Patch from Andrew Victor
The AIC interrupt controller's set_irq_type() can also be used for
internal interrupts.  IRQT_LOW and IRQT_FALLING are the only options not
supported for the internal interrupts.
[Original patch from Karl Olsen]
Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 {
        unsigned int smr, srctype;
 
-       /* change triggering only for FIQ and external IRQ0..IRQ6 */
-       if ((irq < AT91_ID_IRQ0) && (irq != AT91_ID_FIQ))
-               return -EINVAL;
-
        switch (type) {
        case IRQT_HIGH:
                srctype = AT91_AIC_SRCTYPE_HIGH;
                srctype = AT91_AIC_SRCTYPE_RISING;
                break;
        case IRQT_LOW:
+               if ((irq > AT91_ID_FIQ) && (irq < AT91_ID_IRQ0))        /* only supported on external interrupts */
+                       return -EINVAL;
                srctype = AT91_AIC_SRCTYPE_LOW;
                break;
        case IRQT_FALLING:
+               if ((irq > AT91_ID_FIQ) && (irq < AT91_ID_IRQ0))        /* only supported on external interrupts */
+                       return -EINVAL;
                srctype = AT91_AIC_SRCTYPE_FALLING;
                break;
        default: