Hi! Dne sreda, 22. januar 2020 ob 13:44:09 CET je Maxime Ripard napisal(a): > Now that we have a driver for the IOMMU, let's start using it. > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> > --- > arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi index > 29824081b43b..8608bcf1c52c 100644 > --- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > +++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi > @@ -53,6 +53,7 @@ > de: display-engine { > compatible = "allwinner,sun50i-h6-display-engine"; > allwinner,pipelines = <&mixer0>; > + iommus = <&iommu 0>; > status = "disabled"; > }; Isn't iommu property of the mixer node? After all, mixer is the one which reads one or more framebuffers. Once second mixer is defined, would you put another iommu phandle here? Best regards, Jernej > > @@ -122,6 +123,7 @@ > clock-names = "bus", > "mod"; > resets = <&display_clocks RST_MIXER0>; > + iommus = <&iommu 0>; > > ports { > #address-cells = <1>; > @@ -345,6 +347,15 @@ > #interrupt-cells = <3>; > }; > > + iommu: iommu@30f0000 { > + compatible = "allwinner,sun50i-h6-iommu"; > + reg = <0x030f0000 0x10000>; > + interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; > + clocks = <&ccu CLK_BUS_IOMMU>; > + resets = <&ccu RST_BUS_IOMMU>; > + #iommu-cells = <1>; > + }; > + > mmc0: mmc@4020000 { > compatible = "allwinner,sun50i-h6-mmc", > "allwinner,sun50i-a64-mmc";