| 153 | } |
| 154 | |
| 155 | static void gicv2_irq_ack(struct rt_pic_irq *pirq) |
| 156 | { |
| 157 | int hwirq = pirq->hwirq; |
| 158 | struct gicv2 *gic = raw_to_gicv2(pirq->pic); |
| 159 | |
| 160 | if (!_gicv2_eoi_mode_ns) |
| 161 | { |
| 162 | HWREG32(gic->dist_base + GIC_DIST_PENDING_CLEAR + hwirq / 32 * 4) = 1U << (hwirq % 32); |
| 163 | } |
| 164 | |
| 165 | HWREG32(gic->cpu_base + GIC_CPU_EOI) = hwirq; |
| 166 | } |
| 167 | |
| 168 | static void gicv2_irq_mask(struct rt_pic_irq *pirq) |
| 169 | { |