]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: mediatek: mt8188: Fix IOMMU device for rdma0
authorChen-Yu Tsai <wenst@chromium.org>
Tue, 8 Apr 2025 09:23:02 +0000 (17:23 +0800)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Mon, 14 Apr 2025 09:18:40 +0000 (11:18 +0200)
Based on the comments in the MT8188 IOMMU binding header, the rdma0
device specifies the wrong IOMMU device for the IOMMU port it is
tied to:

    This SoC have two MM IOMMU HWs, this is the connected information:
    iommu-vdo: larb0/2/5/9/10/11A/11C/13/16B/17B/19/21
    iommu-vpp: larb1/3/4/6/7/11B/12/14/15/16A/17A/23/27

rdma0's endpoint is M4U_PORT_L1_DISP_RDMA0 (on larb1), which should use
iommu-vpp, but it is currently tied to iommu-vdo.

Somehow this went undetected until recently in Linux v6.15-rc1 with some
IOMMU subsystem framework changes that caused the IOMMU to no longer
work. The IOMMU would fail to probe if any devices associated with it
could not be successfully attached. Prior to these changes, only the
end device would be left without an IOMMU attached.

Fixes: 7075b21d1a8e ("arm64: dts: mediatek: mt8188: Add display nodes for vdosys0")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: Jason-JH Lin <jason-jh.lin@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20250408092303.3563231-1-wenst@chromium.org
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/mt8188.dtsi

index 69a8423d3858903325ac807de3ef87c63d2a9e1f..29d35ca945973c23be497ae98b734cda4e17b7e7 100644 (file)
                        reg = <0 0x1c002000 0 0x1000>;
                        clocks = <&vdosys0 CLK_VDO0_DISP_RDMA0>;
                        interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
-                       iommus = <&vdo_iommu M4U_PORT_L1_DISP_RDMA0>;
+                       iommus = <&vpp_iommu M4U_PORT_L1_DISP_RDMA0>;
                        power-domains = <&spm MT8188_POWER_DOMAIN_VDOSYS0>;
                        mediatek,gce-client-reg = <&gce0 SUBSYS_1c00XXXX 0x2000 0x1000>;