hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/irqchip/irq-xtensa-pic.c
....@@ -44,13 +44,13 @@
4444 static void xtensa_irq_mask(struct irq_data *d)
4545 {
4646 cached_irq_mask &= ~(1 << d->hwirq);
47
- set_sr(cached_irq_mask, intenable);
47
+ xtensa_set_sr(cached_irq_mask, intenable);
4848 }
4949
5050 static void xtensa_irq_unmask(struct irq_data *d)
5151 {
5252 cached_irq_mask |= 1 << d->hwirq;
53
- set_sr(cached_irq_mask, intenable);
53
+ xtensa_set_sr(cached_irq_mask, intenable);
5454 }
5555
5656 static void xtensa_irq_enable(struct irq_data *d)
....@@ -65,12 +65,16 @@
6565
6666 static void xtensa_irq_ack(struct irq_data *d)
6767 {
68
- set_sr(1 << d->hwirq, intclear);
68
+ xtensa_set_sr(1 << d->hwirq, intclear);
6969 }
7070
7171 static int xtensa_irq_retrigger(struct irq_data *d)
7272 {
73
- 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);
7478 return 1;
7579 }
7680