The preferred way to denote hardware with non-coherent DMA is to use the "dma-noncoherent" DT property, at both the GIC redistributor and the GIC ITS levels, [1] instead of relying on the compatibles to handle hardware errata, in this case the Rockchip 3588001 errata. [2] Let's have the preferred way employed in the base Rockchip RK3588 SoC dtsi, which also goes along with adding initial support for the Rockchip RK3582 SoC variant, with its separate compatible. [2][3] [1] Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml [2] https://lore.kernel.org/linux-rockchip/86msgoozqa.wl-maz@xxxxxxxxxx/ [3] https://lore.kernel.org/linux-rockchip/20241222030355.2246-4-naoki@xxxxxxxxx/ Cc: Marc Zyngier <maz@xxxxxxxxxx> Cc: FUKAUMI Naoki <naoki@xxxxxxxxx> Acked-by: Marc Zyngier <maz@xxxxxxxxxx> Signed-off-by: Dragan Simic <dsimic@xxxxxxxxxxx> --- Notes: Changes in v2: - Demoted the series to a single patch, as suggested by Marc [4] - Collected Acked-by tag from Marc [5] Link to v1: https://lore.kernel.org/linux-rockchip/cover.1735313870.git.dsimic@xxxxxxxxxxx/T/#u [4] https://lore.kernel.org/linux-rockchip/87bjwxoyzo.wl-maz@xxxxxxxxxx/ [5] https://lore.kernel.org/linux-rockchip/87a5choyxg.wl-maz@xxxxxxxxxx/ arch/arm64/boot/dts/rockchip/rk3588-base.dtsi | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi index d97d84b88837..bd2385b6bd7f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3588-base.dtsi @@ -1972,27 +1972,30 @@ &i2s3_sdi gic: interrupt-controller@fe600000 { compatible = "arm,gic-v3"; + dma-noncoherent; reg = <0x0 0xfe600000 0 0x10000>, /* GICD */ <0x0 0xfe680000 0 0x100000>; /* GICR */ interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>; interrupt-controller; mbi-alias = <0x0 0xfe610000>; mbi-ranges = <424 56>; msi-controller; ranges; #address-cells = <2>; #interrupt-cells = <4>; #size-cells = <2>; its0: msi-controller@fe640000 { compatible = "arm,gic-v3-its"; + dma-noncoherent; reg = <0x0 0xfe640000 0x0 0x20000>; msi-controller; #msi-cells = <1>; }; its1: msi-controller@fe660000 { compatible = "arm,gic-v3-its"; + dma-noncoherent; reg = <0x0 0xfe660000 0x0 0x20000>; msi-controller; #msi-cells = <1>;