[RFC PATCH devicetree 00/10] Do something about ls-extirq interrupt-map breakage

Marc Zyngier maz at kernel.org
Tue Dec 14 00:51:47 PST 2021


On Tue, 14 Dec 2021 01:37:50 +0000,
Vladimir Oltean <vladimir.oltean at nxp.com> wrote:
> 
> Currently the ls-extirq driver's use of the "interrupt-map" property is
> double-broken:
> - once by Rob Herring's commit 869f0ec048dc ("arm64: dts: freescale: Fix
>   'interrupt-map' parent address cells")
> - twice by Marc Zyngier's commit 041284181226 ("of/irq: Allow matching
>   of an interrupt-map local to an interrupt controller"), later revised,
>   not very elegantly, through commit de4adddcbcc2 ("of/irq: Add a quirk

Elegance is, I'm afraid to say, bloody overrated when dealing with
this sort of crap.


>   for controllers with their own definition of interrupt-map"). So this
>   part works but we're on an offender list.

Define 'part works'. Either it does, or it doesn't. There is no middle
ground here.

> 
> Mark suggests that the problem may lie with the ls-extirq driver, and
> its interpretation of the "interrupt-map" property, to be exact.

s/Mark/Marc/, unless you are talking about someone else (who?).

> 
> This set of changes attempts to make the problem smaller by using a
> vendor-specific name for the property, and reverts Rob's patch because
> similarity with "interrupt-map" isn't actually a desirable feature after
> all, it seems.
> 
> Vladimir Oltean (10):
>   irqchip/ls-extirq: rename "interrupt-map" OF property to
>     "fsl,extirq-map"
>   Revert "arm64: dts: freescale: Fix 'interrupt-map' parent address
>     cells"
>   dt-bindings: ls-extirq: replace "interrupt-map" documentation with
>     "fsl,extirq-map"
>   arm64: dts: ls1043a: rename the "interrupt-map" of the extirq node to
>     "fsl,extirq-map"
>   arm64: dts: ls1046a: rename the "interrupt-map" of the extirq node to
>     "fsl,extirq-map"
>   arm64: dts: ls1088a: rename the "interrupt-map" of the extirq node to
>     "fsl,extirq-map"
>   arm64: dts: ls208xa: rename the "interrupt-map" of the extirq node to
>     "fsl,extirq-map"
>   arm64: dts: lx2160a: rename the "interrupt-map" of the extirq node to
>     "fsl,extirq-map"
>   ARM: dts: ls1021a: rename the "interrupt-map" of the extirq node to
>     "fsl,extirq-map"
>   dt-bindings: ls-extirq: add a YAML schema for the validator
> 
>  .../interrupt-controller/fsl,ls-extirq.txt    |  53 ---------
>  .../interrupt-controller/fsl,ls-extirq.yaml   | 110 ++++++++++++++++++
>  arch/arm/boot/dts/ls1021a.dtsi                |   3 +-
>  .../arm64/boot/dts/freescale/fsl-ls1043a.dtsi |   3 +-
>  .../arm64/boot/dts/freescale/fsl-ls1046a.dtsi |   3 +-
>  .../arm64/boot/dts/freescale/fsl-ls1088a.dtsi |  27 +++--
>  .../arm64/boot/dts/freescale/fsl-ls208xa.dtsi |  27 +++--
>  .../arm64/boot/dts/freescale/fsl-lx2160a.dtsi |  27 +++--
>  drivers/irqchip/irq-ls-extirq.c               |  12 +-
>  9 files changed, 161 insertions(+), 104 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.txt
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml

This is totally pointless. These machines have been in the wild for
years, and existing DTs will be there *forever*. The very notion of
'backporting' DT changes is totally ludicrous when it is some firmware
(ATF, u-boot, or something else *that isn't under your control*) that
provides the DT. It also breaks backward compatibility (old kernel
with new DT), which is just as important. Why do you think I went the
elegance-deprived route and added a quirk?

So no, I'm not taking the irqchip changes, as most of this churn
serves no purpose. The revert of 869f0ec048dc is the only thing that
makes some sense.

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list