[RFC PATCH v1 0/4] Rework realtek-rtl IRQ driver

From: Sander Vanheule
Date: Thu Dec 23 2021 - 07:09:02 EST


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
- routing has an off-by-one error. Values (1..6) correspond to MIPS CAUSEF(2..7)

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.
- Get rid of custom interrupt-map interpretation, replace by realtek,interrupt-routing.

These patches are some initial changes, and since is this my first real work on
an interrupt driver, I'm submitting this as an RFC first. Please see the notes
on the patches for some extra remarks.

I've also currently opted to stay with cascased interrupts, as I'm not
sure if (and how) this should be implemented as a hierarchical
controller.

Best,
Sander

Sander Vanheule (4):
irqchip: realtek-rtl: map control data to virq
irqchip: realtek-rtl: use per-parent irq handling
dt-bindings: interrupt-controller: realtek,rtl-intc: replace irq
mapping
irqchip: realtek-rtl: replace custom interrupt-map

.../realtek,rtl-intc.yaml | 49 +++--
drivers/irqchip/irq-realtek-rtl.c | 202 +++++++++++-------
2 files changed, 163 insertions(+), 88 deletions(-)

--
2.33.1