Re: [PATCH v2] dt-bindings: display: Use OF graph schema

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

 



On Tue, Nov 17, 2020 at 2:05 PM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> Now that we have a graph schema, rework the display related schemas to use
> it. Mostly this is adding a reference to graph.yaml and dropping duplicate
> parts from schemas.
>
> In panel-common.yaml, 'ports' is dropped. Any binding using 'ports'
> should be one with more than 1 port node, and the binding must define
> what each port is.
>
> Cc: Thierry Reding <thierry.reding@xxxxxxxxx>
> Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>
> Cc: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
> Cc: Maxime Ripard <mripard@xxxxxxxxxx>
> Cc: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
> Cc: Thomas Zimmermann <tzimmermann@xxxxxxx>
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> ---
> v2:
>  - Drop 'type: object' where we have a $ref
>  - Drop any common properties like 'reg', '#address-cells', "#size-cells',
>    'remote-endpoint'

I think this isn't going to work in regards to unevaluatedProperties.
Consider this example:

parent:
  $ref: schema.yaml#/parent  # containing properties of 'child'
  properties:
    child:
      unevaluatedProperties: false

The problem is at the 'child' instance level when
'unevaluatedProperties' is evaluated, it can't see the parent schema
with the $ref. So any property in schema.yaml won't be taken into
account. Instead, we have to do something like this:

parent:
  $ref: schema.yaml#/parent
  properties:
    child:
      $ref: schema.yaml#/child
      unevaluatedProperties: false

So we're going to need a $ref for every ports, port, and endpoint
node. Or just allow extra properties.

Rob



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux