Messages in this thread Patch in this message | | | From | Stafford Horne <> | Subject | [PATCH] irqchip: or1k-pic: Undefine mask_ack for level triggered hardware | Date | Tue, 28 Jun 2022 10:28:54 +0900 |
| |
The mask_ack operation clears the interrupt by writing to the PICSR register. This we don't want for level triggered interrupt because it does not actually clear the interrupt on the source hardware.
This was causing issues in qemu with multi core setups where interrupts would continue to fire even though they had been cleared in PICSR.
Just remove the mask_ack operation.
Signed-off-by: Stafford Horne <shorne@gmail.com> --- Note,
I currently have this queued with openrisc fixes for 5.19-rcX. If this is ok with the IRQ maintainers I would like to have this merged via the OpenRISC queue.
drivers/irqchip/irq-or1k-pic.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/irqchip/irq-or1k-pic.c b/drivers/irqchip/irq-or1k-pic.c index 49b47e787644..f289ccd95291 100644 --- a/drivers/irqchip/irq-or1k-pic.c +++ b/drivers/irqchip/irq-or1k-pic.c @@ -66,7 +66,6 @@ static struct or1k_pic_dev or1k_pic_level = { .name = "or1k-PIC-level", .irq_unmask = or1k_pic_unmask, .irq_mask = or1k_pic_mask, - .irq_mask_ack = or1k_pic_mask_ack, }, .handle = handle_level_irq, .flags = IRQ_LEVEL | IRQ_NOPROBE, -- 2.36.1
| |