diff mbox series

[v11,2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property

Message ID 1670539015-11808-3-git-send-email-quic_khsieh@quicinc.com
State New
Headers show
Series Add data-lanes and link-frequencies to dp_out endpoint | expand

Commit Message

Kuogee Hsieh Dec. 8, 2022, 10:36 p.m. UTC
Add both data-lanes and link-frequencies property into endpoint

Changes in v7:
-- split yaml out of dtsi patch
-- link-frequencies from link rate to symbol rate
-- deprecation of old data-lanes property

Changes in v8:
-- correct Bjorn mail address to kernel.org

Changes in v10:
-- add menu item to data-lanes and link-frequecnis

Changes in v11:
-- add endpoint property at port@1

Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
---
 .../bindings/display/msm/dp-controller.yaml        | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Comments

Kuogee Hsieh Dec. 8, 2022, 11:38 p.m. UTC | #1
On 12/8/2022 3:33 PM, Dmitry Baryshkov wrote:
> On 09/12/2022 00:36, Kuogee Hsieh wrote:
>> Add both data-lanes and link-frequencies property into endpoint
>>
>> Changes in v7:
>> -- split yaml out of dtsi patch
>> -- link-frequencies from link rate to symbol rate
>> -- deprecation of old data-lanes property
>>
>> Changes in v8:
>> -- correct Bjorn mail address to kernel.org
>>
>> Changes in v10:
>> -- add menu item to data-lanes and link-frequecnis
>>
>> Changes in v11:
>> -- add endpoint property at port@1
>>
>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
>
> Applying: dt-bindings: msm/dp: add data-lanes and link-frequencies 
> property
> .git/rebase-apply/patch:47: trailing whitespace.
>
> .git/rebase-apply/patch:51: trailing whitespace.
>
>
> Also the dt_binding_check fails with an error for this schema. And 
> after fixing the error in the schema I faced an example validation 
> error. Did you check that the schema is correct and that the example 
> validates against the schema?

yes, but i run "make dt_binding_check 
DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml" 
at mu v5.15 branch since

"make dt_binding_check" does not work at msm-next branch.

But I did not check trainiling whitespace this time.

>
>> ---
>>   .../bindings/display/msm/dp-controller.yaml        | 27 
>> ++++++++++++++++++++++
>>   1 file changed, 27 insertions(+)
>>
>> diff --git 
>> a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml 
>> b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>> index f2515af..2a7fdef8 100644
>> --- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>> +++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>> @@ -81,6 +81,7 @@ properties:
>>       data-lanes:
>>       $ref: /schemas/types.yaml#/definitions/uint32-array
>> +    deprecated: true
>>       minItems: 1
>>       maxItems: 4
>>       items:
>> @@ -96,6 +97,7 @@ properties:
>>       ports:
>>       $ref: /schemas/graph.yaml#/properties/ports
>> +
>>       properties:
>>         port@0:
>>           $ref: /schemas/graph.yaml#/properties/port
>> @@ -105,6 +107,29 @@ properties:
>>           $ref: /schemas/graph.yaml#/properties/port
>>           description: Output endpoint of the controller
>>   +        properties:
>> +          endpoint:
>> +            $ref: /schemas/media/video-interfaces.yaml#
>> +
>> +            properties:
>> +              remote-endpoint: true
>
> PLease add empty lines between the property definitions
>
>> +              data-lanes:
>> +                $ref: /schemas/types.yaml#/definitions/uint32-array
>
> This is already a part of video-interfaces, so you don't need $ref
>
>> +                minItems: 1
>> +                maxItems: 4
>> +                items:
>> +                  maximum: 3
>
> enum: [0, 1, 2, 3]
>
>> +              link-frequencies:
>> +                $ref: /schemas/types.yaml#/definitions/uint64-array
>> +                minItems: 1
>> +                maxItems: 4
>> +                items:
>> +                  maximum: 8100000000
>
> I think we can have enum here too.
>
>> +
>> +  required:
>> +    - port@0
>> +    - port@1
>> +
>>   required:
>>     - compatible
>>     - reg
>> @@ -193,6 +218,8 @@ examples:
>>                   reg = <1>;
>>                   endpoint {
>>                       remote-endpoint = <&typec>;
>> +                    data-lanes = <0 1>;
>> +                    link-frequencies = /bits/ 64 <1620000000 
>> 2700000000 5400000000 8100000000>;
>>                   };
>>               };
>>           };
>
Dmitry Baryshkov Dec. 9, 2022, 12:11 a.m. UTC | #2
On 09/12/2022 01:38, Kuogee Hsieh wrote:
> 
> On 12/8/2022 3:33 PM, Dmitry Baryshkov wrote:
>> On 09/12/2022 00:36, Kuogee Hsieh wrote:
>>> Add both data-lanes and link-frequencies property into endpoint
>>>
>>> Changes in v7:
>>> -- split yaml out of dtsi patch
>>> -- link-frequencies from link rate to symbol rate
>>> -- deprecation of old data-lanes property
>>>
>>> Changes in v8:
>>> -- correct Bjorn mail address to kernel.org
>>>
>>> Changes in v10:
>>> -- add menu item to data-lanes and link-frequecnis
>>>
>>> Changes in v11:
>>> -- add endpoint property at port@1
>>>
>>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
>>
>> Applying: dt-bindings: msm/dp: add data-lanes and link-frequencies 
>> property
>> .git/rebase-apply/patch:47: trailing whitespace.
>>
>> .git/rebase-apply/patch:51: trailing whitespace.
>>
>>
>> Also the dt_binding_check fails with an error for this schema. And 
>> after fixing the error in the schema I faced an example validation 
>> error. Did you check that the schema is correct and that the example 
>> validates against the schema?
> 
> yes, but i run "make dt_binding_check 
> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml" at mu v5.15 branch since

I wouldn't ask you to post the log here. But I don't think that either 
of the errors that I see here is related to 5.15 vs 6.1-rc.

In fact after applying this patch against 5.15 I saw the expected failure:

Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
properties:required: ['port@0', 'port@1'] is not of type 'object', 'boolean'
Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
properties: 'required' should not be valid under {'$ref': 
'#/definitions/json-schema-prop-names'}
Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
ignoring, error in schema: properties: required

> 
> "make dt_binding_check" does not work at msm-next branch.

I went ahead and just checked.

`make dt_binding_check DT_SCHEMA_FILES=display/msm`  works cleanly in 
msm-next and reports a single example-related warning in msm-next-lumag. 
I pushed a patch to fix that warning (wich can hopefully be picked up by 
Abhinav into msm-fixes). So you can assume that both these branches have 
consistent error-free display/msm schemas.

> 
> But I did not check trainiling whitespace this time.
> 
>>
>>> ---
>>>   .../bindings/display/msm/dp-controller.yaml        | 27 
>>> ++++++++++++++++++++++
>>>   1 file changed, 27 insertions(+)
>>>
>>> diff --git 
>>> a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml 
>>> b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>> index f2515af..2a7fdef8 100644
>>> --- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>> +++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>> @@ -81,6 +81,7 @@ properties:
>>>       data-lanes:
>>>       $ref: /schemas/types.yaml#/definitions/uint32-array
>>> +    deprecated: true
>>>       minItems: 1
>>>       maxItems: 4
>>>       items:
>>> @@ -96,6 +97,7 @@ properties:
>>>       ports:
>>>       $ref: /schemas/graph.yaml#/properties/ports
>>> +
>>>       properties:
>>>         port@0:
>>>           $ref: /schemas/graph.yaml#/properties/port
>>> @@ -105,6 +107,29 @@ properties:
>>>           $ref: /schemas/graph.yaml#/properties/port
>>>           description: Output endpoint of the controller
>>>   +        properties:
>>> +          endpoint:
>>> +            $ref: /schemas/media/video-interfaces.yaml#
>>> +
>>> +            properties:
>>> +              remote-endpoint: true
>>
>> PLease add empty lines between the property definitions
>>
>>> +              data-lanes:
>>> +                $ref: /schemas/types.yaml#/definitions/uint32-array
>>
>> This is already a part of video-interfaces, so you don't need $ref
>>
>>> +                minItems: 1
>>> +                maxItems: 4
>>> +                items:
>>> +                  maximum: 3
>>
>> enum: [0, 1, 2, 3]
>>
>>> +              link-frequencies:
>>> +                $ref: /schemas/types.yaml#/definitions/uint64-array
>>> +                minItems: 1
>>> +                maxItems: 4
>>> +                items:
>>> +                  maximum: 8100000000
>>
>> I think we can have enum here too.
>>
>>> +
>>> +  required:
>>> +    - port@0
>>> +    - port@1
>>> +
>>>   required:
>>>     - compatible
>>>     - reg
>>> @@ -193,6 +218,8 @@ examples:
>>>                   reg = <1>;
>>>                   endpoint {
>>>                       remote-endpoint = <&typec>;
>>> +                    data-lanes = <0 1>;
>>> +                    link-frequencies = /bits/ 64 <1620000000 
>>> 2700000000 5400000000 8100000000>;
>>>                   };
>>>               };
>>>           };
>>
Dmitry Baryshkov Dec. 9, 2022, 12:35 a.m. UTC | #3
On 09/12/2022 02:22, Kuogee Hsieh wrote:
> 
> On 12/8/2022 4:11 PM, Dmitry Baryshkov wrote:
>> On 09/12/2022 01:38, Kuogee Hsieh wrote:
>>>
>>> On 12/8/2022 3:33 PM, Dmitry Baryshkov wrote:
>>>> On 09/12/2022 00:36, Kuogee Hsieh wrote:
>>>>> Add both data-lanes and link-frequencies property into endpoint
>>>>>
>>>>> Changes in v7:
>>>>> -- split yaml out of dtsi patch
>>>>> -- link-frequencies from link rate to symbol rate
>>>>> -- deprecation of old data-lanes property
>>>>>
>>>>> Changes in v8:
>>>>> -- correct Bjorn mail address to kernel.org
>>>>>
>>>>> Changes in v10:
>>>>> -- add menu item to data-lanes and link-frequecnis
>>>>>
>>>>> Changes in v11:
>>>>> -- add endpoint property at port@1
>>>>>
>>>>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
>>>>
>>>> Applying: dt-bindings: msm/dp: add data-lanes and link-frequencies 
>>>> property
>>>> .git/rebase-apply/patch:47: trailing whitespace.
>>>>
>>>> .git/rebase-apply/patch:51: trailing whitespace.
>>>>
>>>>
>>>> Also the dt_binding_check fails with an error for this schema. And 
>>>> after fixing the error in the schema I faced an example validation 
>>>> error. Did you check that the schema is correct and that the example 
>>>> validates against the schema?
>>>
>>> yes, but i run "make dt_binding_check 
>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml" at mu v5.15 branch since
>>
>> I wouldn't ask you to post the log here. But I don't think that either 
>> of the errors that I see here is related to 5.15 vs 6.1-rc.
>>
>> In fact after applying this patch against 5.15 I saw the expected 
>> failure:
>>
>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
>> properties:required: ['port@0', 'port@1'] is not of type 'object', 
>> 'boolean'
>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
>> properties: 'required' should not be valid under {'$ref': 
>> '#/definitions/json-schema-prop-names'}
>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
>> ignoring, error in schema: properties: required
>>
>>>
>>> "make dt_binding_check" does not work at msm-next branch.
>>
>> I went ahead and just checked.
>>
>> `make dt_binding_check DT_SCHEMA_FILES=display/msm`  works cleanly in 
>> msm-next and reports a single example-related warning in 
>> msm-next-lumag. I pushed a patch to fix that warning (wich can 
>> hopefully be picked up by Abhinav into msm-fixes). So you can assume 
>> that both these branches have consistent error-free display/msm schemas.
>>
> I have clean msm-next branch (without my data-lines yaml patch applied) 
> and run "make dt_binding_check 
> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml", then I saw below error messages.
> 
> Have you run into this problem?

No.

> 
>    HOSTCC  scripts/basic/fixdep
>    HOSTCC  scripts/dtc/dtc.o
>    HOSTCC  scripts/dtc/flattree.o
>    HOSTCC  scripts/dtc/fstree.o
>    HOSTCC  scripts/dtc/data.o
>    HOSTCC  scripts/dtc/livetree.o
>    HOSTCC  scripts/dtc/treesource.o
>    HOSTCC  scripts/dtc/srcpos.o
>    HOSTCC  scripts/dtc/checks.o
>    HOSTCC  scripts/dtc/util.o
>    LEX     scripts/dtc/dtc-lexer.lex.c
>    HOSTCC  scripts/dtc/dtc-lexer.lex.o
>    HOSTCC  scripts/dtc/dtc-parser.tab.o
>    HOSTLD  scripts/dtc/dtc
> sort: -:2: disorder: 2022.1
> ERROR: dtschema minimum version is v2022.3
> make[2]: *** [check_dtschema_version] Error 1
> make[1]: *** [dt_binding_check] Error 2
> make: *** [__sub-make] Error 2

This means that somewhere in your path you have an older dtschema instance.

When you sent me a question regarding this error, I asked for the 
additional info. You provided none. Instead you went on sending the 
untested patch that doesn't work.

> 
>>>
>>> But I did not check trainiling whitespace this time.
>>>
>>>>
>>>>> ---
>>>>>   .../bindings/display/msm/dp-controller.yaml        | 27 
>>>>> ++++++++++++++++++++++
>>>>>   1 file changed, 27 insertions(+)
>>>>>
>>>>> diff --git 
>>>>> a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml 
>>>>> b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>>>> index f2515af..2a7fdef8 100644
>>>>> --- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>>>> +++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>>>> @@ -81,6 +81,7 @@ properties:
>>>>>       data-lanes:
>>>>>       $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>> +    deprecated: true
>>>>>       minItems: 1
>>>>>       maxItems: 4
>>>>>       items:
>>>>> @@ -96,6 +97,7 @@ properties:
>>>>>       ports:
>>>>>       $ref: /schemas/graph.yaml#/properties/ports
>>>>> +
>>>>>       properties:
>>>>>         port@0:
>>>>>           $ref: /schemas/graph.yaml#/properties/port
>>>>> @@ -105,6 +107,29 @@ properties:
>>>>>           $ref: /schemas/graph.yaml#/properties/port
>>>>>           description: Output endpoint of the controller
>>>>>   +        properties:
>>>>> +          endpoint:
>>>>> +            $ref: /schemas/media/video-interfaces.yaml#
>>>>> +
>>>>> +            properties:
>>>>> +              remote-endpoint: true
>>>>
>>>> PLease add empty lines between the property definitions
>>>>
>>>>> +              data-lanes:
>>>>> +                $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>
>>>> This is already a part of video-interfaces, so you don't need $ref
>>>>
>>>>> +                minItems: 1
>>>>> +                maxItems: 4
>>>>> +                items:
>>>>> +                  maximum: 3
>>>>
>>>> enum: [0, 1, 2, 3]
>>>>
>>>>> +              link-frequencies:
>>>>> +                $ref: /schemas/types.yaml#/definitions/uint64-array
>>>>> +                minItems: 1
>>>>> +                maxItems: 4
>>>>> +                items:
>>>>> +                  maximum: 8100000000
>>>>
>>>> I think we can have enum here too.
>>>>
>>>>> +
>>>>> +  required:
>>>>> +    - port@0
>>>>> +    - port@1
>>>>> +
>>>>>   required:
>>>>>     - compatible
>>>>>     - reg
>>>>> @@ -193,6 +218,8 @@ examples:
>>>>>                   reg = <1>;
>>>>>                   endpoint {
>>>>>                       remote-endpoint = <&typec>;
>>>>> +                    data-lanes = <0 1>;
>>>>> +                    link-frequencies = /bits/ 64 <1620000000 
>>>>> 2700000000 5400000000 8100000000>;
>>>>>                   };
>>>>>               };
>>>>>           };
>>>>
>>
Rob Herring (Arm) Dec. 9, 2022, 12:14 p.m. UTC | #4
On Thu, 08 Dec 2022 14:36:52 -0800, Kuogee Hsieh wrote:
> Add both data-lanes and link-frequencies property into endpoint
> 
> Changes in v7:
> -- split yaml out of dtsi patch
> -- link-frequencies from link rate to symbol rate
> -- deprecation of old data-lanes property
> 
> Changes in v8:
> -- correct Bjorn mail address to kernel.org
> 
> Changes in v10:
> -- add menu item to data-lanes and link-frequecnis
> 
> Changes in v11:
> -- add endpoint property at port@1
> 
> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
> ---
>  .../bindings/display/msm/dp-controller.yaml        | 27 ++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/dp-controller.yaml: properties:required: ['port@0', 'port@1'] is not of type 'object', 'boolean'
	from schema $id: http://json-schema.org/draft-07/schema#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/dp-controller.yaml: properties: 'required' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
	hint: A json-schema keyword was found instead of a DT property name.
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/dp-controller.yaml: ignoring, error in schema: properties: required
Documentation/devicetree/bindings/display/msm/dp-controller.example.dtb:0:0: /example-0/displayport-controller@ae90000: failed to match any schema with compatible: ['qcom,sc7180-dp']

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/1670539015-11808-3-git-send-email-quic_khsieh@quicinc.com

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Kuogee Hsieh Dec. 12, 2022, 5:51 p.m. UTC | #5
On 12/8/2022 4:35 PM, Dmitry Baryshkov wrote:
> On 09/12/2022 02:22, Kuogee Hsieh wrote:
>>
>> On 12/8/2022 4:11 PM, Dmitry Baryshkov wrote:
>>> On 09/12/2022 01:38, Kuogee Hsieh wrote:
>>>>
>>>> On 12/8/2022 3:33 PM, Dmitry Baryshkov wrote:
>>>>> On 09/12/2022 00:36, Kuogee Hsieh wrote:
>>>>>> Add both data-lanes and link-frequencies property into endpoint
>>>>>>
>>>>>> Changes in v7:
>>>>>> -- split yaml out of dtsi patch
>>>>>> -- link-frequencies from link rate to symbol rate
>>>>>> -- deprecation of old data-lanes property
>>>>>>
>>>>>> Changes in v8:
>>>>>> -- correct Bjorn mail address to kernel.org
>>>>>>
>>>>>> Changes in v10:
>>>>>> -- add menu item to data-lanes and link-frequecnis
>>>>>>
>>>>>> Changes in v11:
>>>>>> -- add endpoint property at port@1
>>>>>>
>>>>>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
>>>>>
>>>>> Applying: dt-bindings: msm/dp: add data-lanes and link-frequencies 
>>>>> property
>>>>> .git/rebase-apply/patch:47: trailing whitespace.
>>>>>
>>>>> .git/rebase-apply/patch:51: trailing whitespace.
>>>>>
>>>>>
>>>>> Also the dt_binding_check fails with an error for this schema. And 
>>>>> after fixing the error in the schema I faced an example validation 
>>>>> error. Did you check that the schema is correct and that the 
>>>>> example validates against the schema?
>>>>
>>>> yes, but i run "make dt_binding_check 
>>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml" 
>>>> at mu v5.15 branch since
>>>
>>> I wouldn't ask you to post the log here. But I don't think that 
>>> either of the errors that I see here is related to 5.15 vs 6.1-rc.
>>>
>>> In fact after applying this patch against 5.15 I saw the expected 
>>> failure:
>>>
>>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
>>> properties:required: ['port@0', 'port@1'] is not of type 'object', 
>>> 'boolean'
>>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
>>> properties: 'required' should not be valid under {'$ref': 
>>> '#/definitions/json-schema-prop-names'}
>>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml: 
>>> ignoring, error in schema: properties: required
>>>
>>>>
>>>> "make dt_binding_check" does not work at msm-next branch.
>>>
>>> I went ahead and just checked.
>>>
>>> `make dt_binding_check DT_SCHEMA_FILES=display/msm`  works cleanly 
>>> in msm-next and reports a single example-related warning in 
>>> msm-next-lumag. I pushed a patch to fix that warning (wich can 
>>> hopefully be picked up by Abhinav into msm-fixes). So you can assume 
>>> that both these branches have consistent error-free display/msm 
>>> schemas.
>>>
>> I have clean msm-next branch (without my data-lines yaml patch 
>> applied) and run "make dt_binding_check 
>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml", 
>> then I saw below error messages.
>>
>> Have you run into this problem?
>
> No.

Did you do anything to fix "older dtschema instance"?

I had run "pip3 install dtschema --upgrade" according Rob Herring response.
but it still shows same problem.
Please let know how can I fix this problem.

>
>>
>>    HOSTCC  scripts/basic/fixdep
>>    HOSTCC  scripts/dtc/dtc.o
>>    HOSTCC  scripts/dtc/flattree.o
>>    HOSTCC  scripts/dtc/fstree.o
>>    HOSTCC  scripts/dtc/data.o
>>    HOSTCC  scripts/dtc/livetree.o
>>    HOSTCC  scripts/dtc/treesource.o
>>    HOSTCC  scripts/dtc/srcpos.o
>>    HOSTCC  scripts/dtc/checks.o
>>    HOSTCC  scripts/dtc/util.o
>>    LEX     scripts/dtc/dtc-lexer.lex.c
>>    HOSTCC  scripts/dtc/dtc-lexer.lex.o
>>    HOSTCC  scripts/dtc/dtc-parser.tab.o
>>    HOSTLD  scripts/dtc/dtc
>> sort: -:2: disorder: 2022.1
>> ERROR: dtschema minimum version is v2022.3
>> make[2]: *** [check_dtschema_version] Error 1
>> make[1]: *** [dt_binding_check] Error 2
>> make: *** [__sub-make] Error 2
>
> This means that somewhere in your path you have an older dtschema 
> instance.
>
> When you sent me a question regarding this error, I asked for the 
> additional info. You provided none. Instead you went on sending the 
> untested patch that doesn't work.

since i can not test it on msm-next so that I did test it at my v5-15 
branch.

besides, i think i have to sent the whole series patches include this 
one to address your new comments on other patch.

is this correct?


>
>>
>>>>
>>>> But I did not check trainiling whitespace this time.
>>>>
>>>>>
>>>>>> ---
>>>>>>   .../bindings/display/msm/dp-controller.yaml        | 27 
>>>>>> ++++++++++++++++++++++
>>>>>>   1 file changed, 27 insertions(+)
>>>>>>
>>>>>> diff --git 
>>>>>> a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml 
>>>>>> b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>>>>> index f2515af..2a7fdef8 100644
>>>>>> --- 
>>>>>> a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>>>>> +++ 
>>>>>> b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>>>>>> @@ -81,6 +81,7 @@ properties:
>>>>>>       data-lanes:
>>>>>>       $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>>> +    deprecated: true
>>>>>>       minItems: 1
>>>>>>       maxItems: 4
>>>>>>       items:
>>>>>> @@ -96,6 +97,7 @@ properties:
>>>>>>       ports:
>>>>>>       $ref: /schemas/graph.yaml#/properties/ports
>>>>>> +
>>>>>>       properties:
>>>>>>         port@0:
>>>>>>           $ref: /schemas/graph.yaml#/properties/port
>>>>>> @@ -105,6 +107,29 @@ properties:
>>>>>>           $ref: /schemas/graph.yaml#/properties/port
>>>>>>           description: Output endpoint of the controller
>>>>>>   +        properties:
>>>>>> +          endpoint:
>>>>>> +            $ref: /schemas/media/video-interfaces.yaml#
>>>>>> +
>>>>>> +            properties:
>>>>>> +              remote-endpoint: true
>>>>>
>>>>> PLease add empty lines between the property definitions
>>>>>
>>>>>> +              data-lanes:
>>>>>> +                $ref: /schemas/types.yaml#/definitions/uint32-array
>>>>>
>>>>> This is already a part of video-interfaces, so you don't need $ref
>>>>>
>>>>>> +                minItems: 1
>>>>>> +                maxItems: 4
>>>>>> +                items:
>>>>>> +                  maximum: 3
>>>>>
>>>>> enum: [0, 1, 2, 3]
>>>>>
>>>>>> +              link-frequencies:
>>>>>> +                $ref: /schemas/types.yaml#/definitions/uint64-array
>>>>>> +                minItems: 1
>>>>>> +                maxItems: 4
>>>>>> +                items:
>>>>>> +                  maximum: 8100000000
>>>>>
>>>>> I think we can have enum here too.
>>>>>
>>>>>> +
>>>>>> +  required:
>>>>>> +    - port@0
>>>>>> +    - port@1
>>>>>> +
>>>>>>   required:
>>>>>>     - compatible
>>>>>>     - reg
>>>>>> @@ -193,6 +218,8 @@ examples:
>>>>>>                   reg = <1>;
>>>>>>                   endpoint {
>>>>>>                       remote-endpoint = <&typec>;
>>>>>> +                    data-lanes = <0 1>;
>>>>>> +                    link-frequencies = /bits/ 64 <1620000000 
>>>>>> 2700000000 5400000000 8100000000>;
>>>>>>                   };
>>>>>>               };
>>>>>>           };
>>>>>
>>>
>
Dmitry Baryshkov Dec. 12, 2022, 10:35 p.m. UTC | #6
On Mon, 12 Dec 2022 at 19:51, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote:
>
>
> On 12/8/2022 4:35 PM, Dmitry Baryshkov wrote:
> > On 09/12/2022 02:22, Kuogee Hsieh wrote:
> >>
> >> On 12/8/2022 4:11 PM, Dmitry Baryshkov wrote:
> >>> On 09/12/2022 01:38, Kuogee Hsieh wrote:
> >>>>
> >>>> On 12/8/2022 3:33 PM, Dmitry Baryshkov wrote:
> >>>>> On 09/12/2022 00:36, Kuogee Hsieh wrote:
> >>>>>> Add both data-lanes and link-frequencies property into endpoint
> >>>>>>
> >>>>>> Changes in v7:
> >>>>>> -- split yaml out of dtsi patch
> >>>>>> -- link-frequencies from link rate to symbol rate
> >>>>>> -- deprecation of old data-lanes property
> >>>>>>
> >>>>>> Changes in v8:
> >>>>>> -- correct Bjorn mail address to kernel.org
> >>>>>>
> >>>>>> Changes in v10:
> >>>>>> -- add menu item to data-lanes and link-frequecnis
> >>>>>>
> >>>>>> Changes in v11:
> >>>>>> -- add endpoint property at port@1
> >>>>>>
> >>>>>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
> >>>>>
> >>>>> Applying: dt-bindings: msm/dp: add data-lanes and link-frequencies
> >>>>> property
> >>>>> .git/rebase-apply/patch:47: trailing whitespace.
> >>>>>
> >>>>> .git/rebase-apply/patch:51: trailing whitespace.
> >>>>>
> >>>>>
> >>>>> Also the dt_binding_check fails with an error for this schema. And
> >>>>> after fixing the error in the schema I faced an example validation
> >>>>> error. Did you check that the schema is correct and that the
> >>>>> example validates against the schema?
> >>>>
> >>>> yes, but i run "make dt_binding_check
> >>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml"
> >>>> at mu v5.15 branch since
> >>>
> >>> I wouldn't ask you to post the log here. But I don't think that
> >>> either of the errors that I see here is related to 5.15 vs 6.1-rc.
> >>>
> >>> In fact after applying this patch against 5.15 I saw the expected
> >>> failure:
> >>>
> >>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml:
> >>> properties:required: ['port@0', 'port@1'] is not of type 'object',
> >>> 'boolean'
> >>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml:
> >>> properties: 'required' should not be valid under {'$ref':
> >>> '#/definitions/json-schema-prop-names'}
> >>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml:
> >>> ignoring, error in schema: properties: required
> >>>
> >>>>
> >>>> "make dt_binding_check" does not work at msm-next branch.
> >>>
> >>> I went ahead and just checked.
> >>>
> >>> `make dt_binding_check DT_SCHEMA_FILES=display/msm`  works cleanly
> >>> in msm-next and reports a single example-related warning in
> >>> msm-next-lumag. I pushed a patch to fix that warning (wich can
> >>> hopefully be picked up by Abhinav into msm-fixes). So you can assume
> >>> that both these branches have consistent error-free display/msm
> >>> schemas.
> >>>
> >> I have clean msm-next branch (without my data-lines yaml patch
> >> applied) and run "make dt_binding_check
> >> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml",
> >> then I saw below error messages.
> >>
> >> Have you run into this problem?
> >
> > No.
>
> Did you do anything to fix "older dtschema instance"?

I did not since I hadn't had such a problem. I can refer again to the
steps I provided you beforehand. The email was sent 6 days ago. No
answer from your side since that time.

> I had run  "pip3 install dtschema --upgrade" and still not work.

Can you please post a full log of this command?

>
> D you know how to fix this problem?
>
> Thanks,
>
> kuogee
>
> sort: -:2: disorder: 2022.1
> ERROR: dtschema minimum version is v2022.3
> make[2]: *** [check_dtschema_version] Error 1
> make[1]: *** [dt_binding_check] Error 2
> make: *** [__sub-make] Error 2

Please add the output of:

which dt-validate
dt-validate -V

And also a full log of your failing kernel build.



> I had run "pip3 install dtschema --upgrade" according Rob Herring response.
> but it still shows same problem.
> Please let know how can I fix this problem.
>
> >
> >>
> >>    HOSTCC  scripts/basic/fixdep
> >>    HOSTCC  scripts/dtc/dtc.o
> >>    HOSTCC  scripts/dtc/flattree.o
> >>    HOSTCC  scripts/dtc/fstree.o
> >>    HOSTCC  scripts/dtc/data.o
> >>    HOSTCC  scripts/dtc/livetree.o
> >>    HOSTCC  scripts/dtc/treesource.o
> >>    HOSTCC  scripts/dtc/srcpos.o
> >>    HOSTCC  scripts/dtc/checks.o
> >>    HOSTCC  scripts/dtc/util.o
> >>    LEX     scripts/dtc/dtc-lexer.lex.c
> >>    HOSTCC  scripts/dtc/dtc-lexer.lex.o
> >>    HOSTCC  scripts/dtc/dtc-parser.tab.o
> >>    HOSTLD  scripts/dtc/dtc
> >> sort: -:2: disorder: 2022.1
> >> ERROR: dtschema minimum version is v2022.3
> >> make[2]: *** [check_dtschema_version] Error 1
> >> make[1]: *** [dt_binding_check] Error 2
> >> make: *** [__sub-make] Error 2
> >
> > This means that somewhere in your path you have an older dtschema
> > instance.
> >
> > When you sent me a question regarding this error, I asked for the
> > additional info. You provided none. Instead you went on sending the
> > untested patch that doesn't work.
>
> since i can not test it on msm-next so that I did test it at my v5-15
> branch.

Wrong.

>
> besides, i think i have to sent the whole series patches include this
> one to address your new comments on other patch.
>
> is this correct?

No. Please fix your system first, validate your patches and send them
afterwards. You can not expect others to do your job.

--
With best wishes
Dmitry
Abhinav Kumar Dec. 12, 2022, 11:41 p.m. UTC | #7
Hi Dmitry

On 12/12/2022 2:35 PM, Dmitry Baryshkov wrote:
> On Mon, 12 Dec 2022 at 19:51, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote:
>>
>>
>> On 12/8/2022 4:35 PM, Dmitry Baryshkov wrote:
>>> On 09/12/2022 02:22, Kuogee Hsieh wrote:
>>>>
>>>> On 12/8/2022 4:11 PM, Dmitry Baryshkov wrote:
>>>>> On 09/12/2022 01:38, Kuogee Hsieh wrote:
>>>>>>
>>>>>> On 12/8/2022 3:33 PM, Dmitry Baryshkov wrote:
>>>>>>> On 09/12/2022 00:36, Kuogee Hsieh wrote:
>>>>>>>> Add both data-lanes and link-frequencies property into endpoint
>>>>>>>>
>>>>>>>> Changes in v7:
>>>>>>>> -- split yaml out of dtsi patch
>>>>>>>> -- link-frequencies from link rate to symbol rate
>>>>>>>> -- deprecation of old data-lanes property
>>>>>>>>
>>>>>>>> Changes in v8:
>>>>>>>> -- correct Bjorn mail address to kernel.org
>>>>>>>>
>>>>>>>> Changes in v10:
>>>>>>>> -- add menu item to data-lanes and link-frequecnis
>>>>>>>>
>>>>>>>> Changes in v11:
>>>>>>>> -- add endpoint property at port@1
>>>>>>>>
>>>>>>>> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>`
>>>>>>>
>>>>>>> Applying: dt-bindings: msm/dp: add data-lanes and link-frequencies
>>>>>>> property
>>>>>>> .git/rebase-apply/patch:47: trailing whitespace.
>>>>>>>
>>>>>>> .git/rebase-apply/patch:51: trailing whitespace.
>>>>>>>
>>>>>>>
>>>>>>> Also the dt_binding_check fails with an error for this schema. And
>>>>>>> after fixing the error in the schema I faced an example validation
>>>>>>> error. Did you check that the schema is correct and that the
>>>>>>> example validates against the schema?
>>>>>>
>>>>>> yes, but i run "make dt_binding_check
>>>>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml"
>>>>>> at mu v5.15 branch since
>>>>>
>>>>> I wouldn't ask you to post the log here. But I don't think that
>>>>> either of the errors that I see here is related to 5.15 vs 6.1-rc.
>>>>>
>>>>> In fact after applying this patch against 5.15 I saw the expected
>>>>> failure:
>>>>>
>>>>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml:
>>>>> properties:required: ['port@0', 'port@1'] is not of type 'object',
>>>>> 'boolean'
>>>>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml:
>>>>> properties: 'required' should not be valid under {'$ref':
>>>>> '#/definitions/json-schema-prop-names'}
>>>>> Documentation/devicetree/bindings/display/msm/dp-controller.yaml:
>>>>> ignoring, error in schema: properties: required
>>>>>
>>>>>>
>>>>>> "make dt_binding_check" does not work at msm-next branch.
>>>>>
>>>>> I went ahead and just checked.
>>>>>
>>>>> `make dt_binding_check DT_SCHEMA_FILES=display/msm`  works cleanly
>>>>> in msm-next and reports a single example-related warning in
>>>>> msm-next-lumag. I pushed a patch to fix that warning (wich can
>>>>> hopefully be picked up by Abhinav into msm-fixes). So you can assume
>>>>> that both these branches have consistent error-free display/msm
>>>>> schemas.
>>>>>
>>>> I have clean msm-next branch (without my data-lines yaml patch
>>>> applied) and run "make dt_binding_check
>>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/msm/dp-controller.yaml",
>>>> then I saw below error messages.
>>>>
>>>> Have you run into this problem?
>>>
>>> No.
>>
>> Did you do anything to fix "older dtschema instance"?
> 
> I did not since I hadn't had such a problem. I can refer again to the
> steps I provided you beforehand. The email was sent 6 days ago. No
> answer from your side since that time.
> 
>> I had run  "pip3 install dtschema --upgrade" and still not work.
> 
> Can you please post a full log of this command?
> 
>>
>> D you know how to fix this problem?
>>
>> Thanks,
>>
>> kuogee
>>
>> sort: -:2: disorder: 2022.1
>> ERROR: dtschema minimum version is v2022.3
>> make[2]: *** [check_dtschema_version] Error 1
>> make[1]: *** [dt_binding_check] Error 2
>> make: *** [__sub-make] Error 2
> 
> Please add the output of:
> 
> which dt-validate
> dt-validate -V
> 
> And also a full log of your failing kernel build.
> 
> 
> 
>> I had run "pip3 install dtschema --upgrade" according Rob Herring response.
>> but it still shows same problem.
>> Please let know how can I fix this problem.
>>
>>>
>>>>
>>>>     HOSTCC  scripts/basic/fixdep
>>>>     HOSTCC  scripts/dtc/dtc.o
>>>>     HOSTCC  scripts/dtc/flattree.o
>>>>     HOSTCC  scripts/dtc/fstree.o
>>>>     HOSTCC  scripts/dtc/data.o
>>>>     HOSTCC  scripts/dtc/livetree.o
>>>>     HOSTCC  scripts/dtc/treesource.o
>>>>     HOSTCC  scripts/dtc/srcpos.o
>>>>     HOSTCC  scripts/dtc/checks.o
>>>>     HOSTCC  scripts/dtc/util.o
>>>>     LEX     scripts/dtc/dtc-lexer.lex.c
>>>>     HOSTCC  scripts/dtc/dtc-lexer.lex.o
>>>>     HOSTCC  scripts/dtc/dtc-parser.tab.o
>>>>     HOSTLD  scripts/dtc/dtc
>>>> sort: -:2: disorder: 2022.1
>>>> ERROR: dtschema minimum version is v2022.3
>>>> make[2]: *** [check_dtschema_version] Error 1
>>>> make[1]: *** [dt_binding_check] Error 2
>>>> make: *** [__sub-make] Error 2
>>>
>>> This means that somewhere in your path you have an older dtschema
>>> instance.
>>>
>>> When you sent me a question regarding this error, I asked for the
>>> additional info. You provided none. Instead you went on sending the
>>> untested patch that doesn't work.
>>
>> since i can not test it on msm-next so that I did test it at my v5-15
>> branch.
> 
> Wrong.
> 
>>
>> besides, i think i have to sent the whole series patches include this
>> one to address your new comments on other patch.
>>
>> is this correct?
> 
> No. Please fix your system first, validate your patches and send them
> afterwards. You can not expect others to do your job.
> 

Just finished working with kuogee on this. This issue had been reported 
by few others earlier (example 
https://lore.kernel.org/lkml/bc9be279-a130-d5e7-4397-bbb389d14403@intel.com/T/).

So let me summarize the fix:

1) We do need up upgrade the dtschema first

pip3 install git+https://github.com/devicetree-org/dt-schema.git@main

2) Python version issues were hitting some of the developers so even if 
we had the right version installed the PATH wasnt pointing to the right one

3) We had to install yamllint

We have documented these now for the benefit of others internally.

With all these 3 done, we can compile msm-next-lumag using
make dt_binding_check DT_SCHEMA_FILES=display/msm

Apologies for the setup issues on our end. These are resolved now and 
kuogee will post a v12 for this.

Thanks

Abhinav
> --
> With best wishes
> Dmitry
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
index f2515af..2a7fdef8 100644
--- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
@@ -81,6 +81,7 @@  properties:
 
   data-lanes:
     $ref: /schemas/types.yaml#/definitions/uint32-array
+    deprecated: true
     minItems: 1
     maxItems: 4
     items:
@@ -96,6 +97,7 @@  properties:
 
   ports:
     $ref: /schemas/graph.yaml#/properties/ports
+
     properties:
       port@0:
         $ref: /schemas/graph.yaml#/properties/port
@@ -105,6 +107,29 @@  properties:
         $ref: /schemas/graph.yaml#/properties/port
         description: Output endpoint of the controller
 
+        properties:
+          endpoint:
+            $ref: /schemas/media/video-interfaces.yaml#
+
+            properties:
+              remote-endpoint: true
+              data-lanes:
+                $ref: /schemas/types.yaml#/definitions/uint32-array
+                minItems: 1
+                maxItems: 4
+                items:
+                  maximum: 3
+              link-frequencies:
+                $ref: /schemas/types.yaml#/definitions/uint64-array
+                minItems: 1
+                maxItems: 4
+                items:
+                  maximum: 8100000000
+  
+  required:
+    - port@0
+    - port@1
+   
 required:
   - compatible
   - reg
@@ -193,6 +218,8 @@  examples:
                 reg = <1>;
                 endpoint {
                     remote-endpoint = <&typec>;
+                    data-lanes = <0 1>;
+                    link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
                 };
             };
         };