aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2019-01-24 19:51:28 -0500
committerMax Filippov <jcmvbkbc@gmail.com>2019-01-26 05:02:14 -0500
commitbb6652363be0415578ec4a8794cbe9403db9c336 (patch)
treec316a722fccfb6a738ca4f5b72f9138f2ea06101
parent8b1c42cdd7181200dc1fff39dcb6ac1a3fac2c25 (diff)
drivers/irqchip: xtensa: add warning to irq_retrigger
XEA2 and MX PIC can only retrigger software interrupts. Issue a warning if an interrupt of any other type is retriggered. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-rw-r--r--drivers/irqchip/irq-xtensa-mx.c6
-rw-r--r--drivers/irqchip/irq-xtensa-pic.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/irqchip/irq-xtensa-mx.c b/drivers/irqchip/irq-xtensa-mx.c
index 5385f5768345..0bd3fe3b969e 100644
--- a/drivers/irqchip/irq-xtensa-mx.c
+++ b/drivers/irqchip/irq-xtensa-mx.c
@@ -113,7 +113,11 @@ static void xtensa_mx_irq_ack(struct irq_data *d)
113 113
114static int xtensa_mx_irq_retrigger(struct irq_data *d) 114static int xtensa_mx_irq_retrigger(struct irq_data *d)
115{ 115{
116 xtensa_set_sr(1 << d->hwirq, intset); 116 unsigned int mask = 1u << d->hwirq;
117
118 if (WARN_ON(mask & ~XCHAL_INTTYPE_MASK_SOFTWARE))
119 return 0;
120 xtensa_set_sr(mask, intset);
117 return 1; 121 return 1;
118} 122}
119 123
diff --git a/drivers/irqchip/irq-xtensa-pic.c b/drivers/irqchip/irq-xtensa-pic.c
index c200234dd2c9..ab12328be5ee 100644
--- a/drivers/irqchip/irq-xtensa-pic.c
+++ b/drivers/irqchip/irq-xtensa-pic.c
@@ -70,7 +70,11 @@ static void xtensa_irq_ack(struct irq_data *d)
70 70
71static int xtensa_irq_retrigger(struct irq_data *d) 71static int xtensa_irq_retrigger(struct irq_data *d)
72{ 72{
73 xtensa_set_sr(1 << d->hwirq, intset); 73 unsigned int mask = 1u << d->hwirq;
74
75 if (WARN_ON(mask & ~XCHAL_INTTYPE_MASK_SOFTWARE))
76 return 0;
77 xtensa_set_sr(mask, intset);
74 return 1; 78 return 1;
75} 79}
76 80