• Vladimir Oltean's avatar
    Revert "arm64: dts: freescale: Fix 'interrupt-map' parent address cells" · 1447c635
    Vladimir Oltean authored
    This reverts commit 869f0ec0. That
    updated the expected device tree binding format for the ls-extirq
    driver, without also updating the parsing code (ls_extirq_parse_map)
    to the new format.
    
    The context is that the ls-extirq driver uses the standard
    "interrupt-map" OF property in a non-standard way, as suggested by
    Rob Herring during review:
    https://lore.kernel.org/lkml/20190927161118.GA19333@bogus/
    
    This has turned out to be problematic, as Marc Zyngier discovered
    through commit 04128418 ("of/irq: Allow matching of an interrupt-map
    local to an interrupt controller"), later fixed through commit
    de4adddc ("of/irq: Add a quirk for controllers with their own
    definition of interrupt-map"). Marc's position, expressed on multiple
    opportunities, is that:
    
    (a) [ making private use of the reserved "interrupt-map" name in a
        driver ] "is wrong, by the very letter of what an interrupt-map
        means. If the interrupt map points to an interrupt controller,
        that's the target for the interrupt."
    https://lore.kernel.org/lkml/87k0g8jlmg.wl-maz@kernel.org/
    
    (b) [ updating the driver's bindings to accept a non-reserved name for
        this property, as an alternative, is ] "is totally pointless. These
        machines have been in the wild for years, and existing DTs will be
        there *forever*."
    https://lore.kernel.org/lkml/87ilvrk1r0.wl-maz@kernel.org/
    
    Considering the above, the Linux kernel has quirks in place to deal with
    the ls-extirq's non-standard use of the "interrupt-map". These quirks
    may be needed in other operating systems that consume this device tree,
    yet this is seen as the only viable solution.
    
    Therefore, the premise of the patch being reverted here is invalid.
    It doesn't matter whether the driver, in its non-standard use of the
    property, complies to the standard format or not, since this property
    isn't expected to be used for interrupt translation by the core.
    
    This change restores LS1088A, LS2088A/LS2085A and LX2160A to their
    previous bindings, which allows these systems to continue to use
    external interrupt lines with the correct polarity.
    
    Fixes: 869f0ec0 ("arm64: dts: freescale: Fix 'interrupt-map' parent address cells")
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Acked-by: default avatarMarc Zyngier <maz@kernel.org>
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    1447c635
fsl-ls208xa.dtsi 29.7 KB