On 25/11/2025 06:26, Harikrishna shenoy wrote:
> 
> 
> On 23/11/25 15:30, Krzysztof Kozlowski wrote:
>> On Fri, Nov 21, 2025 at 06:04:37PM +0530, Harikrishna Shenoy wrote:
>>> Remove j721e-intg register name from reg-name list for cdns,mhdp8546
>>> compatible. The j721e-integ registers are specific to TI SoCs, so they
>>> are not required for compatibles other than ti,j721e-mhdp8546.
>>>
>>> Update reg and reg-names top level constraints with lists according
>>> to compatibles.
>>>
>>> Move the register name constraints and reg description list to the
>>> appropriate compatibility sections to ensure the correct register
>>> names are used with each compatible value also adding the DSC register
>>> to make bindings align with what the hardware supports.
>>>
>>> Fixes: 7169d082e7e6 ("dt-bindings: drm/bridge: MHDP8546 bridge binding 
>>> changes for HDCP")
>>> Signed-off-by: Harikrishna Shenoy <[email protected]>
>>> ---
>>>
>>> Links to some discussions pointing to need for a fixes patch:
>>> https://lore.kernel.org/all/[email protected]/
>>> https://lore.kernel.org/all/[email protected]/
>>>
>>> Link to v2:
>>> <https://lore.kernel.org/all/[email protected]/>
>>>
>>> Changelog v2 --> v3:
>>> -Add the reg description list and reg-name list in top level constraints
>>> using oneOf for either of compatible.
>>> Logs after testing some cases: 
>>> https://gist.github.com/h-shenoy/a422f7278859cd95447e674963caabd9
>>>
>>> Link to v1:
>>> <https://lore.kernel.org/all/[email protected]/>
>>>
>>> Changelog v1 --> v2:
>>> -Update the reg description list for each compatible and add register space
>>> for dsc to make the bindings reflect what hardware supports although
>>> the driver doesn't support dsc yet.
>>>
>>> Note: j721e-integ are not optional registers for ti-compatible.
>>>
>>>   .../display/bridge/cdns,mhdp8546.yaml         | 85 ++++++++++++++-----
>>>   1 file changed, 66 insertions(+), 19 deletions(-)
>>>
>>> diff --git 
>>> a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml 
>>> b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
>>> index c2b369456e4e2..632595ef32f63 100644
>>> --- a/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
>>> +++ b/Documentation/devicetree/bindings/display/bridge/cdns,mhdp8546.yaml
>>> @@ -17,23 +17,45 @@ properties:
>>>         - ti,j721e-mhdp8546
>>>   
>>>     reg:
>>> -    minItems: 1
>>> -    items:
>>> -      - description:
>>> -          Register block of mhdptx apb registers up to PHY mapped area 
>>> (AUX_CONFIG_P).
>>> -          The AUX and PMA registers are not part of this range, they are 
>>> instead
>>> -          included in the associated PHY.
>>> -      - description:
>>> -          Register block for DSS_EDP0_INTG_CFG_VP registers in case of TI 
>>> J7 SoCs.
>>> -      - description:
>>> -          Register block of mhdptx sapb registers.
>>> +    oneOf:
>>> +      - minItems: 2
>>> +      - items:
>>
>> This is wrong syntax. You created here a list, so you now allow
>> anything with minItems 2.
> Hi Krzysztof,
> 
> The list defined here restricts what lists are accepted, so for 

No. It does not.

Look - you defined list of ONLY minItems:2, without anything else. The
problem is that your oneOf consist of four separate cases and you wanted
two cases, so only:
oneOf:
 - foo
   whatever goes here

 - bar
   further schema

Not four.

> cdns,mhdp8546 compatible anything more than 3 items is rejected 
> (example: 
> https://gist.github.com/h-shenoy/a422f7278859cd95447e674963caabd9). 
> Could you please help me with an
> example where you think the bindings are incorrect?
> 
>>
>>> +          - description:
>>> +              Register block of mhdptx apb registers up to PHY mapped area 
>>> (AUX_CONFIG_P).
>>> +              The AUX and PMA registers are not part of this range, they 
>>> are instead
>>> +              included in the associated PHY.
>>> +          - description:
>>> +              Register block for DSS_EDP0_INTG_CFG_VP registers in case of 
>>> TI J7 SoCs.
>>> +          - description:
>>> +              Register block of mhdptx sapb registers.
>>> +          - description:
>>> +              Register block for mhdptx DSC encoder registers.
>>> +
>>> +      - minItems: 1
>>
>> Actually anything with minItems 1... I asked for list of TWO, not FOUR,
>> items. Or if syntax is getting to complicated, just min and maxItems.
>>
>>
>>> +      - items:
>>> +          - description:
>>> +              Register block of mhdptx apb registers up to PHY mapped area 
>>> (AUX_CONFIG_P).
>>> +              The AUX and PMA registers are not part of this range, they 
>>> are instead
>>> +              included in the associated PHY.
>>> +          - description:
>>> +              Register block of mhdptx sapb registers.
>>> +          - description:
>>> +              Register block for mhdptx DSC encoder registers.
>>>   
>>>     reg-names:
>>> -    minItems: 1
>>> -    items:
>>> -      - const: mhdptx
>>> -      - const: j721e-intg
>>> -      - const: mhdptx-sapb
>>> +    oneOf:
>>> +      - minItems: 2
>>> +      - items:
>>
>> Also wrong.
>>
>>> +          - const: mhdptx
>>> +          - const: j721e-intg
>>> +          - const: mhdptx-sapb
>>> +          - const: dsc
>>> +
>>> +      - minItems: 1
>>> +      - items:
>>> +          - const: mhdptx
>>> +          - const: mhdptx-sapb
>>> +          - const: dsc
>>>   
>>>     clocks:
>>>       maxItems: 1
>>> @@ -100,18 +122,43 @@ allOf:
>>>         properties:
>>>           reg:
>>>             minItems: 2
>>> -          maxItems: 3
>>
>> Your commit msg says you "remove" but here you ADD one more item, thus
>> growing this 3->4.
>>
>> How remove can result in 3 becoming 4?
>>
> Yes, remove is for j721e-intg for cdns,mhdp8546 compatible, and to make
> bindings complete have added dsc reg-blocks, these changes reflects 
> correct capabilities of hardware, have mentioned these in commit message 
> as well.


Again, how a "remove" can result in growing?


Best regards,
Krzysztof

Reply via email to