diff options
| author | Koichiro Den <den@valinux.co.jp> | 2026-02-16 00:22:16 +0900 |
|---|---|---|
| committer | Vinod Koul <vkoul@kernel.org> | 2026-02-25 15:24:19 +0530 |
| commit | d9d5e1bdd18074ea27985c777ddc3a8a0b007468 (patch) | |
| tree | 3fb0fbbcb2ec358db874f174ccc7163b0550b87a /tools/perf/scripts/python/bin/stackcollapse-record | |
| parent | 2e8726879559144b4582fa059780e452b3a1ad41 (diff) | |
dmaengine: dw-edma: Add virtual IRQ for interrupt-emulation doorbells
Interrupt emulation can assert the dw-edma IRQ line without updating the
DONE/ABORT bits. With the shared read/write/common IRQ handlers, the
driver cannot reliably distinguish such an emulated interrupt from a
real one and leaving a level IRQ asserted may wedge the line.
Allocate a dedicated, requestable Linux virtual IRQ (db_irq) for
interrupt emulation and attach an irq_chip whose .irq_ack runs the
core-specific deassert sequence (.ack_emulated_irq()). The physical
dw-edma interrupt handlers raise this virtual IRQ via
generic_handle_irq(), ensuring emulated IRQs are always deasserted.
Export the virtual IRQ number (db_irq) and the doorbell register offset
(db_offset) via struct dw_edma_chip so platform users can expose
interrupt emulation as a doorbell.
Without this, a single interrupt-emulation write can leave the level IRQ
line asserted and cause the generic IRQ layer to disable it.
Signed-off-by: Koichiro Den <den@valinux.co.jp>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20260215152216.3393561-3-den@valinux.co.jp
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
