diff options
Diffstat (limited to 'arch/mips/rb532/irq.c')
| -rw-r--r-- | arch/mips/rb532/irq.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/mips/rb532/irq.c b/arch/mips/rb532/irq.c index 53eeb5e7bc5..f07882029a9 100644 --- a/arch/mips/rb532/irq.c +++ b/arch/mips/rb532/irq.c @@ -151,7 +151,8 @@ static void rb532_disable_irq(unsigned int irq_nr)  		mask |= intr_bit;  		WRITE_MASK(addr, mask); -		if (group == GPIO_MAPPED_IRQ_GROUP) +		/* There is a maximum of 14 GPIO interrupts */ +		if (group == GPIO_MAPPED_IRQ_GROUP && irq_nr <= (GROUP4_IRQ_BASE + 13))  			rb532_gpio_set_istat(0, irq_nr - GPIO_MAPPED_IRQ_BASE);  		/* @@ -174,7 +175,7 @@ static int rb532_set_type(unsigned int irq_nr, unsigned type)  	int gpio = irq_nr - GPIO_MAPPED_IRQ_BASE;  	int group = irq_to_group(irq_nr); -	if (group != GPIO_MAPPED_IRQ_GROUP) +	if (group != GPIO_MAPPED_IRQ_GROUP || irq_nr > (GROUP4_IRQ_BASE + 13))  		return (type == IRQ_TYPE_LEVEL_HIGH) ? 0 : -EINVAL;  	switch (type) {  |