irqchip: atmel-aic-common: Prevent clobbering of priority when changing IRQ type
This patch makes the bitmask for AIC_SRCTYPE consistent with that of its valid values, and prevents the priority field at bits 2:0 from being clobbered by an incorrect AND with the AIC_SRCTYPE mask. Signed-off-by: Gavin Li <gavinli@thegavinli.com> Cc: <stable@vger.kernel.org> # v3.17+ Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Link: https://lkml.kernel.org/r/1420598843-8409-1-git-send-email-gavinli@thegavinli.com Signed-off-by: Jason Cooper <jason@lakedaemon.net>
This commit is contained in:
parent
4b149e4174
commit
91d1179212
|
@ -28,7 +28,7 @@
|
||||||
#define AT91_AIC_IRQ_MIN_PRIORITY 0
|
#define AT91_AIC_IRQ_MIN_PRIORITY 0
|
||||||
#define AT91_AIC_IRQ_MAX_PRIORITY 7
|
#define AT91_AIC_IRQ_MAX_PRIORITY 7
|
||||||
|
|
||||||
#define AT91_AIC_SRCTYPE GENMASK(7, 6)
|
#define AT91_AIC_SRCTYPE GENMASK(6, 5)
|
||||||
#define AT91_AIC_SRCTYPE_LOW (0 << 5)
|
#define AT91_AIC_SRCTYPE_LOW (0 << 5)
|
||||||
#define AT91_AIC_SRCTYPE_FALLING (1 << 5)
|
#define AT91_AIC_SRCTYPE_FALLING (1 << 5)
|
||||||
#define AT91_AIC_SRCTYPE_HIGH (2 << 5)
|
#define AT91_AIC_SRCTYPE_HIGH (2 << 5)
|
||||||
|
@ -74,7 +74,7 @@ int aic_common_set_type(struct irq_data *d, unsigned type, unsigned *val)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*val &= AT91_AIC_SRCTYPE;
|
*val &= ~AT91_AIC_SRCTYPE;
|
||||||
*val |= aic_type;
|
*val |= aic_type;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue