.. | .. |
---|
42 | 42 | /* Read the interrupt status: */ |
---|
43 | 43 | status = ioread32(psp->io_regs + psp->vdata->intsts_reg); |
---|
44 | 44 | |
---|
| 45 | + /* Clear the interrupt status by writing the same value we read. */ |
---|
| 46 | + iowrite32(status, psp->io_regs + psp->vdata->intsts_reg); |
---|
| 47 | + |
---|
45 | 48 | /* invoke subdevice interrupt handlers */ |
---|
46 | 49 | if (status) { |
---|
47 | 50 | if (psp->sev_irq_handler) |
---|
.. | .. |
---|
50 | 53 | if (psp->tee_irq_handler) |
---|
51 | 54 | psp->tee_irq_handler(irq, psp->tee_irq_data, status); |
---|
52 | 55 | } |
---|
53 | | - |
---|
54 | | - /* Clear the interrupt status by writing the same value we read. */ |
---|
55 | | - iowrite32(status, psp->io_regs + psp->vdata->intsts_reg); |
---|
56 | 56 | |
---|
57 | 57 | return IRQ_HANDLED; |
---|
58 | 58 | } |
---|