Re: [PATCH] dt-bindings: opp: switch inner and outer min/maxItems rules for opp-hz

From: David Heidelberg
Date: Mon Mar 04 2024 - 15:44:45 EST


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@xxxxxxx>
---
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

--
David Heidelberg