[1/2] media: dt-bindings: allwinner: h6-vpu-g2: Add IOMMU reference property

Message ID 20221115090644.3602573-2-wenst@chromium.org
State New
Headers
Series arm64: allwinner: h6: Add IOMMU reference to Hantro G2 decoder |

Commit Message

Chen-Yu Tsai Nov. 15, 2022, 9:06 a.m. UTC
  The Hantro G2 video decoder block sits behind an IOMMU. The device tree
binding needs a property to reference it. Without a reference for the
implementation to properly configure the IOMMU, it will fault and cause
the video decoder to fail.

Add an "iommus" property for referring to the IOMMU port. The master ID
in the example is taken from the IOMMU fault error message on Linux,
and the number seems to match the order in the user manual's IOMMU
diagram.

Fixes: fd6be12716c4 ("media: dt-bindings: allwinner: document H6 Hantro G2 binding")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
 .../bindings/media/allwinner,sun50i-h6-vpu-g2.yaml           | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Krzysztof Kozlowski Nov. 15, 2022, 2:11 p.m. UTC | #1
On 15/11/2022 10:06, Chen-Yu Tsai wrote:
> The Hantro G2 video decoder block sits behind an IOMMU. The device tree
> binding needs a property to reference it. Without a reference for the
> implementation to properly configure the IOMMU, it will fault and cause
> the video decoder to fail.
> 
> Add an "iommus" property for referring to the IOMMU port. The master ID
> in the example is taken from the IOMMU fault error message on Linux,
> and the number seems to match the order in the user manual's IOMMU
> diagram.
> 
> Fixes: fd6be12716c4 ("media: dt-bindings: allwinner: document H6 Hantro G2 binding")
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> ---


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof
  
Jernej Škrabec Nov. 15, 2022, 9:30 p.m. UTC | #2
Dne torek, 15. november 2022 ob 10:06:43 CET je Chen-Yu Tsai napisal(a):
> The Hantro G2 video decoder block sits behind an IOMMU. The device tree
> binding needs a property to reference it. Without a reference for the
> implementation to properly configure the IOMMU, it will fault and cause
> the video decoder to fail.

Note, Hantro G2 can happily work without IOMMU, if it is disabled for whole 
system, like disabling driver in kernel config. In such cases, it uses CMA.

Anyway, it's true that there should be proper reference in DT and bindings, 
so:
Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej

> 
> Add an "iommus" property for referring to the IOMMU port. The master ID
> in the example is taken from the IOMMU fault error message on Linux,
> and the number seems to match the order in the user manual's IOMMU
> diagram.
> 
> Fixes: fd6be12716c4 ("media: dt-bindings: allwinner: document H6 Hantro G2
> binding") Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> ---
>  .../bindings/media/allwinner,sun50i-h6-vpu-g2.yaml           | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git
> a/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
> b/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
> index 24d7bf21499e..9d44236f2deb 100644
> ---
> a/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
> +++
> b/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
> @@ -36,6 +36,9 @@ properties:
>    resets:
>      maxItems: 1
> 
> +  iommus:
> +    maxItems: 1
> +
>  required:
>    - compatible
>    - reg
> @@ -43,6 +46,7 @@ required:
>    - clocks
>    - clock-names
>    - resets
> +  - iommus
> 
>  additionalProperties: false
> 
> @@ -59,6 +63,7 @@ examples:
>          clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
>          clock-names = "bus", "mod";
>          resets = <&ccu RST_BUS_VP9>;
> +        iommus = <&iommu 5>;
>      };
> 
>  ...
  

Patch

diff --git a/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml b/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
index 24d7bf21499e..9d44236f2deb 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun50i-h6-vpu-g2.yaml
@@ -36,6 +36,9 @@  properties:
   resets:
     maxItems: 1
 
+  iommus:
+    maxItems: 1
+
 required:
   - compatible
   - reg
@@ -43,6 +46,7 @@  required:
   - clocks
   - clock-names
   - resets
+  - iommus
 
 additionalProperties: false
 
@@ -59,6 +63,7 @@  examples:
         clocks = <&ccu CLK_BUS_VP9>, <&ccu CLK_VP9>;
         clock-names = "bus", "mod";
         resets = <&ccu RST_BUS_VP9>;
+        iommus = <&iommu 5>;
     };
 
 ...