After seeing some use, and with more devices tested, the current implementation for the Realtek SoC interrupt controller was found to contain a few flaws. The driver requires the following fixes: - irq_domain_ops::map should map the virq, not the hwirq (patch 1) - routing has an off-by-one error. Routing values (1..6) correspond to MIPS CAUSEF(2..7) (patch 2) The following improvements should also be made: - Use N real cascaded interrupts with an interrupt-specific mask of child irq lines. Otherwise a high-priority interrupt may cause a low-priority interrupt to be handled first. (patch 3) - Get rid of assumed routing to parent interrupts of the original implementation (patch 4, 5) Changes since v1: Link: https://lore.kernel.org/all/cover.1640261161.git.sander@xxxxxxxxxxxxx/ Still an RFC. Mainly since I don't like the open coding in the last patch, but also since I still have a question about the chained IRQ handlers. - Split some of the changes to limit the patch scope to one issue. - Dropped some small (spurious or unneeded) changes - Instead of dropping/replacing interrupt-map, the last patches now provide an implementation that amends the current situtation. Sander Vanheule (5): irqchip/realtek-rtl: map control data to virq irqchip/realtek-rtl: fix off-by-one in routing irqchip/realtek-rtl: use per-parent irq handling dt-bindings: interrupt-controller: realtek,rtl-intc: map output lines irqchip/realtek-rtl: add explicit output routing .../realtek,rtl-intc.yaml | 38 ++- drivers/irqchip/irq-realtek-rtl.c | 232 ++++++++++++++---- 2 files changed, 218 insertions(+), 52 deletions(-) -- 2.33.1