Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37f2e4bc authored by Andrew Victor's avatar Andrew Victor Committed by Russell King
Browse files

[ARM] 3582/1: AT91RM9200 IRQ trigger types



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: default avatarAndrew Victor <andrew@sanpeople.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 10e8e1fb
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -92,10 +92,6 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
{
	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;
@@ -104,9 +100,13 @@ static int at91rm9200_irq_type(unsigned irq, unsigned type)
		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: