diff mbox series

dt-bindings: opp: switch inner and outer min/maxItems rules for opp-hz

Message ID 20231229191038.247258-1-david@ixit.cz
State Changes Requested
Headers show
Series dt-bindings: opp: switch inner and outer min/maxItems rules for opp-hz | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 1 warnings, 12 lines checked
robh/patch-applied success
robh/dtbs-check warning build log
robh/dt-meta-schema success

Commit Message

David Heidelberg Dec. 29, 2023, 7:10 p.m. UTC
Fixes issue as:
```
arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: opp-table: opp-200000000:opp-hz:0: [200000000, 0, 0, 150000000, 0, 0, 0, 0, 300000000] is too long
```

Fixes: 3cb16ad69bef ("dt-bindings: opp: accept array of frequencies")

Signed-off-by: David Heidelberg <david@ixit.cz>
---
 Documentation/devicetree/bindings/opp/opp-v2-base.yaml | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Krzysztof Kozlowski Dec. 30, 2023, 2:17 p.m. UTC | #1
On 29/12/2023 20:10, David Heidelberg wrote:
> Fixes issue as:
> ```

Drop, it's not RST, but commit msg.

> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: opp-table: opp-200000000:opp-hz:0: [200000000, 0, 0, 150000000, 0, 0, 0, 0, 300000000] is too long
> ```
> 
> Fixes: 3cb16ad69bef ("dt-bindings: opp: accept array of frequencies")
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  Documentation/devicetree/bindings/opp/opp-v2-base.yaml | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> index e2f8f7af3cf4..86d3aa0eb435 100644
> --- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> +++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> @@ -55,10 +55,9 @@ patternProperties:
>            to relate the values to their clocks or the order in which the clocks
>            need to be configured and that is left for the implementation
>            specific binding.
> -        minItems: 1
> -        maxItems: 32
>          items:
> -          maxItems: 1
> +          minItems: 1
> +          maxItems: 32

This does not look like correct fix. The original code looked fine -
only one item is allowed in each sub-element (array).


Best regards,
Krzysztof
Rob Herring Jan. 2, 2024, 11:58 p.m. UTC | #2
On Sat, Dec 30, 2023 at 03:17:21PM +0100, Krzysztof Kozlowski wrote:
> On 29/12/2023 20:10, David Heidelberg wrote:
> > Fixes issue as:
> > ```
> 
> Drop, it's not RST, but commit msg.
> 
> > arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: opp-table: opp-200000000:opp-hz:0: [200000000, 0, 0, 150000000, 0, 0, 0, 0, 300000000] is too long
> > ```
> > 
> > Fixes: 3cb16ad69bef ("dt-bindings: opp: accept array of frequencies")
> > 
> > Signed-off-by: David Heidelberg <david@ixit.cz>
> > ---
> >  Documentation/devicetree/bindings/opp/opp-v2-base.yaml | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> > index e2f8f7af3cf4..86d3aa0eb435 100644
> > --- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> > +++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> > @@ -55,10 +55,9 @@ patternProperties:
> >            to relate the values to their clocks or the order in which the clocks
> >            need to be configured and that is left for the implementation
> >            specific binding.
> > -        minItems: 1
> > -        maxItems: 32
> >          items:
> > -          maxItems: 1
> > +          minItems: 1
> > +          maxItems: 32
> 
> This does not look like correct fix. The original code looked fine -
> only one item is allowed in each sub-element (array).

This one is special being 64-bit values so we have an exception in 
property-units.yaml. The constraints here don't get used in decoding the 
dtb and the default way of 1 outer element is used.

It doesn't look like opp-hz needs to be a matrix as it is really just an 
array. Perhaps it should just be changed to an array type. 
Alternatively, adding 'items: { maxItems: 1 }' to the definition in 
property-units.yaml fixes the issue as well.

Though we can fix this, I'm looking into if we have other cases where we 
need this to work as-is. There's probably some room for improvement in 
how matrix dimensions are handled.

Rob
Rob Herring Jan. 30, 2024, 5:06 p.m. UTC | #3
On Tue, Jan 02, 2024 at 04:58:15PM -0700, Rob Herring wrote:
> On Sat, Dec 30, 2023 at 03:17:21PM +0100, Krzysztof Kozlowski wrote:
> > On 29/12/2023 20:10, David Heidelberg wrote:
> > > Fixes issue as:
> > > ```
> > 
> > Drop, it's not RST, but commit msg.
> > 
> > > arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: opp-table: opp-200000000:opp-hz:0: [200000000, 0, 0, 150000000, 0, 0, 0, 0, 300000000] is too long
> > > ```
> > > 
> > > Fixes: 3cb16ad69bef ("dt-bindings: opp: accept array of frequencies")
> > > 
> > > Signed-off-by: David Heidelberg <david@ixit.cz>
> > > ---
> > >  Documentation/devicetree/bindings/opp/opp-v2-base.yaml | 5 ++---
> > >  1 file changed, 2 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> > > index e2f8f7af3cf4..86d3aa0eb435 100644
> > > --- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> > > +++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> > > @@ -55,10 +55,9 @@ patternProperties:
> > >            to relate the values to their clocks or the order in which the clocks
> > >            need to be configured and that is left for the implementation
> > >            specific binding.
> > > -        minItems: 1
> > > -        maxItems: 32
> > >          items:
> > > -          maxItems: 1
> > > +          minItems: 1
> > > +          maxItems: 32
> > 
> > This does not look like correct fix. The original code looked fine -
> > only one item is allowed in each sub-element (array).
> 
> This one is special being 64-bit values so we have an exception in 
> property-units.yaml. The constraints here don't get used in decoding the 
> dtb and the default way of 1 outer element is used.
> 
> It doesn't look like opp-hz needs to be a matrix as it is really just an 
> array. Perhaps it should just be changed to an array type. 
> Alternatively, adding 'items: { maxItems: 1 }' to the definition in 
> property-units.yaml fixes the issue as well.
> 
> Though we can fix this, I'm looking into if we have other cases where we 
> need this to work as-is. There's probably some room for improvement in 
> how matrix dimensions are handled.

I've made some improvements on matrix dimensions, but this one is still 
an issue. Can you respin this dropping 'items: {maxItems: 1}'. I'm going 
to change the definition in property-units.yaml to uint64-array.

Rob
David Heidelberg March 4, 2024, 8:34 p.m. UTC | #4
On 30/01/2024 18:06, Rob Herring wrote:
> On Tue, Jan 02, 2024 at 04:58:15PM -0700, Rob Herring wrote:
>> On Sat, Dec 30, 2023 at 03:17:21PM +0100, Krzysztof Kozlowski wrote:
>>> On 29/12/2023 20:10, David Heidelberg wrote:
>>>> Fixes issue as:
>>>> ```
>>> Drop, it's not RST, but commit msg.
>>>
>>>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: opp-table: opp-200000000:opp-hz:0: [200000000, 0, 0, 150000000, 0, 0, 0, 0, 300000000] is too long
>>>> ```
>>>>
>>>> Fixes: 3cb16ad69bef ("dt-bindings: opp: accept array of frequencies")
>>>>
>>>> Signed-off-by: David Heidelberg <david@ixit.cz>
>>>> ---
>>>>   Documentation/devicetree/bindings/opp/opp-v2-base.yaml | 5 ++---
>>>>   1 file changed, 2 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
>>>> index e2f8f7af3cf4..86d3aa0eb435 100644
>>>> --- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
>>>> +++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
>>>> @@ -55,10 +55,9 @@ patternProperties:
>>>>             to relate the values to their clocks or the order in which the clocks
>>>>             need to be configured and that is left for the implementation
>>>>             specific binding.
>>>> -        minItems: 1
>>>> -        maxItems: 32
>>>>           items:
>>>> -          maxItems: 1
>>>> +          minItems: 1
>>>> +          maxItems: 32
>>> This does not look like correct fix. The original code looked fine -
>>> only one item is allowed in each sub-element (array).
>> This one is special being 64-bit values so we have an exception in
>> property-units.yaml. The constraints here don't get used in decoding the
>> dtb and the default way of 1 outer element is used.
>>
>> It doesn't look like opp-hz needs to be a matrix as it is really just an
>> array. Perhaps it should just be changed to an array type.
>> Alternatively, adding 'items: { maxItems: 1 }' to the definition in
>> property-units.yaml fixes the issue as well.
>>
>> Though we can fix this, I'm looking into if we have other cases where we
>> need this to work as-is. There's probably some room for improvement in
>> how matrix dimensions are handled.
> I've made some improvements on matrix dimensions, but this one is still
> an issue. Can you respin this dropping 'items: {maxItems: 1}'. I'm going
> to change the definition in property-units.yaml to uint64-array.

Keeping the rest of my changes still generates warnings (today dt-schema 
git) even with `maxItems` dropped.

The only working scenario is when I do only the dropping of `items: 
{maxItems: 1}` from the original code.

Is it the standalone change of just dropping this what did you desired? 
If yes, I have the patch prepared.

David

>
> Rob
Rob Herring March 4, 2024, 11:02 p.m. UTC | #5
On Mon, Mar 4, 2024 at 2:34 PM David Heidelberg <david@ixit.cz> wrote:
>
> On 30/01/2024 18:06, Rob Herring wrote:
> > On Tue, Jan 02, 2024 at 04:58:15PM -0700, Rob Herring wrote:
> >> On Sat, Dec 30, 2023 at 03:17:21PM +0100, Krzysztof Kozlowski wrote:
> >>> On 29/12/2023 20:10, David Heidelberg wrote:
> >>>> Fixes issue as:
> >>>> ```
> >>> Drop, it's not RST, but commit msg.
> >>>
> >>>> arch/arm64/boot/dts/qcom/sdm845-oneplus-enchilada.dtb: opp-table: opp-200000000:opp-hz:0: [200000000, 0, 0, 150000000, 0, 0, 0, 0, 300000000] is too long
> >>>> ```
> >>>>
> >>>> Fixes: 3cb16ad69bef ("dt-bindings: opp: accept array of frequencies")
> >>>>
> >>>> Signed-off-by: David Heidelberg <david@ixit.cz>
> >>>> ---
> >>>>   Documentation/devicetree/bindings/opp/opp-v2-base.yaml | 5 ++---
> >>>>   1 file changed, 2 insertions(+), 3 deletions(-)
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> >>>> index e2f8f7af3cf4..86d3aa0eb435 100644
> >>>> --- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> >>>> +++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
> >>>> @@ -55,10 +55,9 @@ patternProperties:
> >>>>             to relate the values to their clocks or the order in which the clocks
> >>>>             need to be configured and that is left for the implementation
> >>>>             specific binding.
> >>>> -        minItems: 1
> >>>> -        maxItems: 32
> >>>>           items:
> >>>> -          maxItems: 1
> >>>> +          minItems: 1
> >>>> +          maxItems: 32
> >>> This does not look like correct fix. The original code looked fine -
> >>> only one item is allowed in each sub-element (array).
> >> This one is special being 64-bit values so we have an exception in
> >> property-units.yaml. The constraints here don't get used in decoding the
> >> dtb and the default way of 1 outer element is used.
> >>
> >> It doesn't look like opp-hz needs to be a matrix as it is really just an
> >> array. Perhaps it should just be changed to an array type.
> >> Alternatively, adding 'items: { maxItems: 1 }' to the definition in
> >> property-units.yaml fixes the issue as well.
> >>
> >> Though we can fix this, I'm looking into if we have other cases where we
> >> need this to work as-is. There's probably some room for improvement in
> >> how matrix dimensions are handled.
> > I've made some improvements on matrix dimensions, but this one is still
> > an issue. Can you respin this dropping 'items: {maxItems: 1}'. I'm going
> > to change the definition in property-units.yaml to uint64-array.
>
> Keeping the rest of my changes still generates warnings (today dt-schema
> git) even with `maxItems` dropped.
>
> The only working scenario is when I do only the dropping of `items:
> {maxItems: 1}` from the original code.
>
> Is it the standalone change of just dropping this what did you desired?
> If yes, I have the patch prepared.

Yes. I still need to look at changing the type, but that shouldn't
hold up the kernel change.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
index e2f8f7af3cf4..86d3aa0eb435 100644
--- a/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
+++ b/Documentation/devicetree/bindings/opp/opp-v2-base.yaml
@@ -55,10 +55,9 @@  patternProperties:
           to relate the values to their clocks or the order in which the clocks
           need to be configured and that is left for the implementation
           specific binding.
-        minItems: 1
-        maxItems: 32
         items:
-          maxItems: 1
+          minItems: 1
+          maxItems: 32
 
       opp-microvolt:
         description: |