ARM: dts: BCM2711 AON_INTR2 generates IRQ edges
authorPhil Elwell <phil@raspberrypi.com>
Fri, 21 Jan 2022 12:24:57 +0000 (12:24 +0000)
committerPhil Elwell <8911409+pelwell@users.noreply.github.com>
Sat, 22 Jan 2022 13:56:56 +0000 (13:56 +0000)
THe AON_INTR2 controller manages the HDMI interrupts, combining them
into a single interrupt passed to the GIC. bcm2711.dtsi declares the
interrupt as being IRQ_TYPE_LEVEL_HIGH, but it should be
IRQ_TYPE_EDGE_RISING. Most of the time the distinction shouldn't
matter, but there is a small possibility of losing interrupts unless
it is corrected.

See: http://lists.infradead.org/pipermail/linux-arm-kernel/2022-January/710292.html

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
arch/arm/boot/dts/bcm2711.dtsi

index 544633a84433bcd15ec3f325880110c6fe7bd273..2b834efddc06bce3f485ab6eaa9a3df6661bd612 100644 (file)
                aon_intr: interrupt-controller@7ef00100 {
                        compatible = "brcm,bcm2711-l2-intc", "brcm,l2-intc";
                        reg = <0x7ef00100 0x30>;
-                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>;
                        interrupt-controller;
                        #interrupt-cells = <1>;
                        status = "disabled";
                                 <&clk_27MHz>;
                        resets = <&dvp 1>;
                        interrupt-parent = <&aon_intr>;
-                       interrupts = <8>, <7>, <6>,
+                       interrupts = <8>, <7>, <6>,     // This is correct
                                     <9>, <10>, <11>;
                        interrupt-names = "cec-tx", "cec-rx", "cec-low",
                                          "wakeup", "hpd-connected", "hpd-removed";