[v2,1/2] media: dt-bindings: allwinner: video-engine: Fix number of IOMMU channels

Message ID 20221117060704.367945-2-jernej.skrabec@gmail.com
State New
Headers
Series arm64: allwinner: h6: Add second IOMMU reference to Cedrus |

Commit Message

Jernej Škrabec Nov. 17, 2022, 6:07 a.m. UTC
  Cedrus (video engine) on Allwinner H6 actually uses two IOMMU channel,
not just one. However, Cedrus on SoCs like D1 only uses one channel.

Allow up to 2 IOMMU channels.

Fixes: 62a8ccf3a248 ("arm64: dts: allwinner: h6: Fix Cedrus IOMMU usage")
Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
---
 .../bindings/media/allwinner,sun4i-a10-video-engine.yaml       | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Krzysztof Kozlowski Nov. 17, 2022, 1:13 p.m. UTC | #1
On 17/11/2022 07:07, Jernej Skrabec wrote:
> Cedrus (video engine) on Allwinner H6 actually uses two IOMMU channel,
> not just one. However, Cedrus on SoCs like D1 only uses one channel.
> 
> Allow up to 2 IOMMU channels.
> 
> Fixes: 62a8ccf3a248 ("arm64: dts: allwinner: h6: Fix Cedrus IOMMU usage")
> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> ---
>  .../bindings/media/allwinner,sun4i-a10-video-engine.yaml       | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
> index 541325f900a1..6446004d59d9 100644
> --- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
> +++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
> @@ -55,7 +55,8 @@ properties:
>      description: Phandle to the device SRAM
>  
>    iommus:
> -    maxItems: 1
> +    minItems: 1
> +    maxItems: 2

You have several compatibles in the file, so usually this is further
constrained per each variant in allOf:if:then:.

Best regards,
Krzysztof
  
Jernej Škrabec Nov. 17, 2022, 8:31 p.m. UTC | #2
Dne četrtek, 17. november 2022 ob 14:13:00 CET je Krzysztof Kozlowski 
napisal(a):
> On 17/11/2022 07:07, Jernej Skrabec wrote:
> > Cedrus (video engine) on Allwinner H6 actually uses two IOMMU channel,
> > not just one. However, Cedrus on SoCs like D1 only uses one channel.
> > 
> > Allow up to 2 IOMMU channels.
> > 
> > Fixes: 62a8ccf3a248 ("arm64: dts: allwinner: h6: Fix Cedrus IOMMU usage")
> > Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
> > ---
> > 
> >  .../bindings/media/allwinner,sun4i-a10-video-engine.yaml       | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git
> > a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
> > e.yaml
> > b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
> > e.yaml index 541325f900a1..6446004d59d9 100644
> > ---
> > a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
> > e.yaml +++
> > b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
> > e.yaml> 
> > @@ -55,7 +55,8 @@ properties:
> >      description: Phandle to the device SRAM
> >    
> >    iommus:
> > -    maxItems: 1
> > +    minItems: 1
> > +    maxItems: 2
> 
> You have several compatibles in the file, so usually this is further
> constrained per each variant in allOf:if:then:.

Usually, yes. But this whole binding would need update. It has a few optional 
properties and none of them is tied to any compatible. Additionally, if I do 
it as you suggest, then Robs automatic test will report the issue, because 
existing H6 based boards won't match this binding anymore. I would much rather 
send follow up patch which clears up all optional properties.

Best regards,
Jernej
  
Krzysztof Kozlowski Nov. 18, 2022, 8:09 a.m. UTC | #3
On 17/11/2022 21:31, Jernej Škrabec wrote:
> Dne četrtek, 17. november 2022 ob 14:13:00 CET je Krzysztof Kozlowski 
> napisal(a):
>> On 17/11/2022 07:07, Jernej Skrabec wrote:
>>> Cedrus (video engine) on Allwinner H6 actually uses two IOMMU channel,
>>> not just one. However, Cedrus on SoCs like D1 only uses one channel.
>>>
>>> Allow up to 2 IOMMU channels.
>>>
>>> Fixes: 62a8ccf3a248 ("arm64: dts: allwinner: h6: Fix Cedrus IOMMU usage")
>>> Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
>>> ---
>>>
>>>  .../bindings/media/allwinner,sun4i-a10-video-engine.yaml       | 3 ++-
>>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
>>> e.yaml
>>> b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
>>> e.yaml index 541325f900a1..6446004d59d9 100644
>>> ---
>>> a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
>>> e.yaml +++
>>> b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engin
>>> e.yaml> 
>>> @@ -55,7 +55,8 @@ properties:
>>>      description: Phandle to the device SRAM
>>>    
>>>    iommus:
>>> -    maxItems: 1
>>> +    minItems: 1
>>> +    maxItems: 2
>>
>> You have several compatibles in the file, so usually this is further
>> constrained per each variant in allOf:if:then:.
> 
> Usually, yes. But this whole binding would need update. It has a few optional 
> properties and none of them is tied to any compatible. Additionally, if I do 
> it as you suggest, then Robs automatic test will report the issue, because 
> existing H6 based boards won't match this binding anymore. I would much rather 
> send follow up patch which clears up all optional properties.

I don't understand last argument. It's basically like saying - I keep
bindings not really correct, because otherwise I would see warnings and
I would need to fix them.

If this can be constrained per variant, constrain it and then fix the
boards.
Best regards,
Krzysztof
  

Patch

diff --git a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
index 541325f900a1..6446004d59d9 100644
--- a/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
+++ b/Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml
@@ -55,7 +55,8 @@  properties:
     description: Phandle to the device SRAM
 
   iommus:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
 
   memory-region:
     maxItems: 1