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

From: Kuogee Hsieh
Date: Mon Dec 12 2022 - 12:52:09 EST



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@xxxxxxxxxxx>`

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>;
                  };
              };
          };