Re: [PATCH 1/2] dt-bindings: display: renesas,du: narrow interrupts and resets per variants

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 28/08/2024 14:45, Laurent Pinchart wrote:
> Hi Krzysztof,
> 
> On Sun, Aug 18, 2024 at 08:48:54PM +0200, Krzysztof Kozlowski wrote:
>> On 18/08/2024 19:51, Laurent Pinchart wrote:
>>> On Sun, Aug 18, 2024 at 07:44:22PM +0200, Krzysztof Kozlowski wrote:
>>>> On 18/08/2024 19:41, Laurent Pinchart wrote:
>>>>> On Sun, Aug 18, 2024 at 07:30:02PM +0200, Krzysztof Kozlowski wrote:
>>>>>> Each variable-length property like interrupts or resets must have fixed
>>>>>> constraints on number of items for given variant in binding.  The
>>>>>> clauses in "if:then:" block should define both limits: upper and lower.
>>>>>
>>>>> I thought that, when only one of minItems or maxItems was specified, the
>>>>> other automatically defaulted to the same value. I'm pretty sure I
>>>>> recall Rob asking me to drop one of the two in some bindings. Has the
>>>>> rule changes ? Is it documented somewhere ?
>>>>
>>>> New dtschema changed it and, even if previous behavior is restored, the
>>>> size in if:then: always had to be constrained. You could have skipped
>>>> one side of limit if it was equal to outer/top-level limit, e.g:
>>>>
>>>> properties:
>>>>   clocks:
>>>>     minItems: 1
>>>>     maxItems: 2
>>>>
>>>>
>>>> if:then:properties:
>>>>   clocks:
>>>>     minItems: 2
>>>
>>> Where can I find a description of the behaviour of the new dtschema
>>> (hopefully with some documentation) ?
>>
>> No clue, but I feel there is some core concept missing. Your earlier
>> statement:
>> "I thought that, when only one of minItems or maxItems was specified, the"
>>
>> was never logically correct for the "if:then", except for the case I
>> mentioned above. That's why all schema used as examples had it explicit:
>>
>> My talk from 2022, page 30:
>> https://static.sched.com/hosted_files/osseu2022/bd/How%20to%20Get%20Your%20DT%20Schema%20Bindings%20Accepted%20in%20Less%20than%2010%20Iterations%20-%20Krzysztof%20Kozlowski%2C%20Linaro.pdf?_gl=1*kmzqmt*_gcl_au*MTU2MzQ1MjY0Mi4xNzIxNzE0NDc1
>> all constraints defined,.
>>
>> My talk from 2023, page 34:
>> https://static.sched.com/hosted_files/eoss2023/a8/How%20to%20Get%20Your%20DT%20Schema%20Bindings%20Accepted%20in%20Less%20than%2010%20Iterations%20-%20Krzysztof%20Kozlowski%2C%20Linaro%20-%20ELCE%202023.pdf?_gl=1*1jgx6d3*_gcl_au*MTU2MzQ1MjY0Mi4xNzIxNzE0NDc1
>>
>> Recently, I started using other example as "useful reference":
>> https://elixir.bootlin.com/linux/v6.8/source/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml#L132
>>
>> That's nothing. All three above reference examples I keep giving are
>> already there and repeated in emails all the time.
>>
>> So aren't you confusing the entire "skip one limit" for top-level
>> properties? This patch is not about it all and dtschema did not change.
> 
> There must have been a misunderstanding indeed, I interpreted "New
> dtschema changed it" as meaning there were now new rules. Is that
> incorrect ?

For the binding with a property defined only in top-level properties: no
changes, no new rules.

For the binding with top-level and if:then:else: dtschema since few
months changed interpretation.

> 
> If you don't mind clarifying, what is the current recommendation to
> indicate that a property has a fixed number of items ? Which of the
> following three options is preferred ?
> 

Answer below assumes we have clocks defined in top-level properties and
there is no if:then:else customizing it.

> properties:
>   clocks:
>     minItems: 2

That's wrong, because items are unconstrained.

> 
> properties:
>   clocks:
>     maxItems: 2

This one is preferred.

> 
> properties:
>   clocks:
>     minItems: 2
>     maxItems: 2

This one is correct, but less preferred.


Best regards,
Krzysztof




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux