* [PATCH v5 0/2] *** IT6505 driver read dt properties *** @ 2022-10-19 9:32 allen 2022-10-19 9:32 ` [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen 2022-10-19 9:32 ` [PATCH v5 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt allen 0 siblings, 2 replies; 8+ messages in thread From: allen @ 2022-10-19 9:32 UTC (permalink / raw) Cc: Allen Chen, Pin-Yen Lin, Jau-Chih Tseng, Hermes Wu, Kenneth Hung, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list:DRM DRIVERS, Jernej Skrabec, Jonas Karlman, Laurent Pinchart, open list This series let driver can read properties from dt to restrict dp output bandwidth. Changes in v3: -Rename property name. Changes in v4: -Use data-lanes and link-frequencies instead of "ite,dp-output-data-lane-count" and "ite,dp-output-max-pixel-clock-mhz". Changes in v5: -Add a port and a endpoint. -Move data-lanes property to the output endpoint. allen chen (2): dt-bindings: it6505: add properties to restrict output bandwidth drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt .../bindings/display/bridge/ite,it6505.yaml | 89 +++++++++++++++++-- drivers/gpu/drm/bridge/ite-it6505.c | 80 ++++++++++++++++- 2 files changed, 160 insertions(+), 9 deletions(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-19 9:32 [PATCH v5 0/2] *** IT6505 driver read dt properties *** allen @ 2022-10-19 9:32 ` allen 2022-10-24 16:37 ` Rob Herring 2022-10-19 9:32 ` [PATCH v5 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt allen 1 sibling, 1 reply; 8+ messages in thread From: allen @ 2022-10-19 9:32 UTC (permalink / raw) Cc: Allen Chen, Pin-Yen Lin, Jau-Chih Tseng, Hermes Wu, Kenneth Hung, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, open list:DRM DRIVERS, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list From: allen chen <allen.chen@ite.com.tw> Add properties to restrict dp output data-lanes and clock. Signed-off-by: Pin-Yen Lin <treapking@chromium.org> Signed-off-by: Allen Chen <allen.chen@ite.com.tw> --- .../bindings/display/bridge/ite,it6505.yaml | 89 +++++++++++++++++-- 1 file changed, 83 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml index 833d11b2303a7..8e607b6929fc9 100644 --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml @@ -52,9 +52,70 @@ properties: maxItems: 1 description: extcon specifier for the Power Delivery - port: - $ref: /schemas/graph.yaml#/properties/port - description: A port node pointing to DPI host port node + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: A port node pointing to DPI host port node + + properties: + endpoint: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + unevaluatedProperties: false + + properties: + link-frequencies: + minItems: 1 + maxItems: 1 + description: Allowed max link frequencies in Hz + + port@1: + $ref: /schemas/graph.yaml#/$defs/port-base + unevaluatedProperties: false + description: Video port for DP output + + properties: + endpoint: + $ref: /schemas/graph.yaml#/$defs/endpoint-base + unevaluatedProperties: false + + properties: + data-lanes: + oneOf: + - minItems: 1 + maxItems: 1 + uniqueItems: true + items: + enum: + - 0 + - 1 + description: For one lane operation. + + - minItems: 2 + maxItems: 2 + uniqueItems: true + items: + enum: + - 0 + - 1 + description: For two lanes operation. + + - minItems: 4 + maxItems: 4 + uniqueItems: true + items: + enum: + - 0 + - 1 + - 2 + - 3 + description: For four lanes operation. + required: + - port@0 + - port@1 required: - compatible @@ -63,6 +124,7 @@ required: - interrupts - reset-gpios - extcon + - ports additionalProperties: false @@ -85,9 +147,24 @@ examples: reset-gpios = <&pio 179 1>; extcon = <&usbc_extcon>; - port { - it6505_in: endpoint { - remote-endpoint = <&dpi_out>; + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + it6505_in: endpoint { + remote-endpoint = <&dpi_out>; + link-frequencies = /bits/ 64 <150000000>; + }; + }; + + port@1 { + reg = <1>; + it6505_out: endpoint { + remote-endpoint = <&dp_in>; + data-lanes = <0 1>; + }; }; }; }; -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-19 9:32 ` [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen @ 2022-10-24 16:37 ` Rob Herring 2022-10-26 4:03 ` Pin-yen Lin 2022-10-27 1:09 ` allen.chen 0 siblings, 2 replies; 8+ messages in thread From: Rob Herring @ 2022-10-24 16:37 UTC (permalink / raw) To: allen Cc: Pin-Yen Lin, Jau-Chih Tseng, Hermes Wu, Kenneth Hung, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Krzysztof Kozlowski, open list:DRM DRIVERS, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list On Wed, Oct 19, 2022 at 05:32:13PM +0800, allen wrote: > From: allen chen <allen.chen@ite.com.tw> > > Add properties to restrict dp output data-lanes and clock. > > Signed-off-by: Pin-Yen Lin <treapking@chromium.org> > Signed-off-by: Allen Chen <allen.chen@ite.com.tw> > --- > .../bindings/display/bridge/ite,it6505.yaml | 89 +++++++++++++++++-- > 1 file changed, 83 insertions(+), 6 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > index 833d11b2303a7..8e607b6929fc9 100644 > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > @@ -52,9 +52,70 @@ properties: > maxItems: 1 > description: extcon specifier for the Power Delivery > > - port: > - $ref: /schemas/graph.yaml#/properties/port > - description: A port node pointing to DPI host port node No existing users you are breaking? The commit msg should explain. > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: A port node pointing to DPI host port node > + > + properties: > + endpoint: > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > + unevaluatedProperties: false > + > + properties: > + link-frequencies: > + minItems: 1 > + maxItems: 1 > + description: Allowed max link frequencies in Hz > + > + port@1: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: Video port for DP output > + > + properties: > + endpoint: > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > + unevaluatedProperties: false > + > + properties: > + data-lanes: > + oneOf: > + - minItems: 1 > + maxItems: 1 > + uniqueItems: true > + items: > + enum: > + - 0 > + - 1 > + description: For one lane operation. > + > + - minItems: 2 > + maxItems: 2 > + uniqueItems: true > + items: > + enum: > + - 0 > + - 1 > + description: For two lanes operation. > + > + - minItems: 4 > + maxItems: 4 > + uniqueItems: true > + items: > + enum: > + - 0 > + - 1 > + - 2 > + - 3 > + description: For four lanes operation. I would do just: data-lanes: minItems: 1 items: - enum: [ 0, 1 ] - const: 1 - const: 2 - const: 3 It does allow 3 lanes, but I don't think that's a big deal. What it does doesn't allow is any order and yours does. Rob ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-24 16:37 ` Rob Herring @ 2022-10-26 4:03 ` Pin-yen Lin 2022-10-28 1:52 ` Krzysztof Kozlowski 2022-10-27 1:09 ` allen.chen 1 sibling, 1 reply; 8+ messages in thread From: Pin-yen Lin @ 2022-10-26 4:03 UTC (permalink / raw) To: allen Cc: Jau-Chih Tseng, Hermes Wu, Kenneth Hung, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Krzysztof Kozlowski, open list:DRM DRIVERS, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list, Rob Herring Hi Allen, On Tue, Oct 25, 2022 at 12:37 AM Rob Herring <robh@kernel.org> wrote: > > On Wed, Oct 19, 2022 at 05:32:13PM +0800, allen wrote: > > From: allen chen <allen.chen@ite.com.tw> > > > > Add properties to restrict dp output data-lanes and clock. > > > > Signed-off-by: Pin-Yen Lin <treapking@chromium.org> > > Signed-off-by: Allen Chen <allen.chen@ite.com.tw> > > --- > > .../bindings/display/bridge/ite,it6505.yaml | 89 +++++++++++++++++-- > > 1 file changed, 83 insertions(+), 6 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > index 833d11b2303a7..8e607b6929fc9 100644 > > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > @@ -52,9 +52,70 @@ properties: > > maxItems: 1 > > description: extcon specifier for the Power Delivery > > > > - port: > > - $ref: /schemas/graph.yaml#/properties/port > > - description: A port node pointing to DPI host port node > > No existing users you are breaking? The commit msg should explain. > > > + ports: > > + $ref: /schemas/graph.yaml#/properties/ports > > + > > + properties: > > + port@0: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: A port node pointing to DPI host port node > > + > > + properties: > > + endpoint: > > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > > + unevaluatedProperties: false > > + > > + properties: > > + link-frequencies: > > + minItems: 1 > > + maxItems: 1 > > + description: Allowed max link frequencies in Hz > > + > > + port@1: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: Video port for DP output > > + > > + properties: > > + endpoint: > > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > > + unevaluatedProperties: false > > + > > + properties: > > + data-lanes: > > + oneOf: > > + - minItems: 1 > > + maxItems: 1 > > + uniqueItems: true > > + items: > > + enum: > > + - 0 > > + - 1 > > + description: For one lane operation. > > + > > + - minItems: 2 > > + maxItems: 2 > > + uniqueItems: true > > + items: > > + enum: > > + - 0 > > + - 1 > > + description: For two lanes operation. > > + > > + - minItems: 4 > > + maxItems: 4 > > + uniqueItems: true > > + items: > > + enum: > > + - 0 > > + - 1 > > + - 2 > > + - 3 > > + description: For four lanes operation. > > I would do just: > > data-lanes: > minItems: 1 > items: > - enum: [ 0, 1 ] > - const: 1 > - const: 2 > - const: 3 I believe we also want a `uniqueItems: true` to prevent duplicate items like `<1 1>`. Regards, Pin-yen > > It does allow 3 lanes, but I don't think that's a big deal. What it does > doesn't allow is any order and yours does. > > Rob ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-26 4:03 ` Pin-yen Lin @ 2022-10-28 1:52 ` Krzysztof Kozlowski 0 siblings, 0 replies; 8+ messages in thread From: Krzysztof Kozlowski @ 2022-10-28 1:52 UTC (permalink / raw) To: Pin-yen Lin, allen Cc: Jau-Chih Tseng, Hermes Wu, Kenneth Hung, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Krzysztof Kozlowski, open list:DRM DRIVERS, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list, Rob Herring On 26/10/2022 00:03, Pin-yen Lin wrote: >>> + - minItems: 4 >>> + maxItems: 4 >>> + uniqueItems: true >>> + items: >>> + enum: >>> + - 0 >>> + - 1 >>> + - 2 >>> + - 3 >>> + description: For four lanes operation. >> >> I would do just: >> >> data-lanes: >> minItems: 1 >> items: >> - enum: [ 0, 1 ] >> - const: 1 >> - const: 2 >> - const: 3 > > I believe we also want a `uniqueItems: true` to prevent duplicate > items like `<1 1>`. ... and are <1 1> passing with Rob's proposal? Best regards, Krzysztof ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-24 16:37 ` Rob Herring 2022-10-26 4:03 ` Pin-yen Lin @ 2022-10-27 1:09 ` allen.chen 2022-10-27 3:02 ` Pin-yen Lin 1 sibling, 1 reply; 8+ messages in thread From: allen.chen @ 2022-10-27 1:09 UTC (permalink / raw) To: robh Cc: treapking, Jau-Chih.Tseng, Hermes.Wu, Kenneth.Hung, andrzej.hajda, narmstrong, robert.foss, Laurent.pinchart, jonas, jernej.skrabec, airlied, daniel, krzysztof.kozlowski+dt, dri-devel, devicetree, linux-kernel Hi rob -----Original Message----- From: Rob Herring <robh@kernel.org> Sent: Tuesday, October 25, 2022 12:38 AM To: Allen Chen (陳柏宇) <allen.chen@ite.com.tw> Cc: Pin-Yen Lin <treapking@chromium.org>; Jau-Chih Tseng (曾昭智) <Jau-Chih.Tseng@ite.com.tw>; Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <narmstrong@baylibre.com>; Robert Foss <robert.foss@linaro.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; David Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; open list:DRM DRIVERS <dri-devel@lists.freedesktop.org>; open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; open list <linux-kernel@vger.kernel.org> Subject: Re: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth On Wed, Oct 19, 2022 at 05:32:13PM +0800, allen wrote: > From: allen chen <allen.chen@ite.com.tw> > > Add properties to restrict dp output data-lanes and clock. > > Signed-off-by: Pin-Yen Lin <treapking@chromium.org> > Signed-off-by: Allen Chen <allen.chen@ite.com.tw> > --- > .../bindings/display/bridge/ite,it6505.yaml | 89 +++++++++++++++++-- > 1 file changed, 83 insertions(+), 6 deletions(-) > > diff --git > a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > index 833d11b2303a7..8e607b6929fc9 100644 > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > @@ -52,9 +52,70 @@ properties: > maxItems: 1 > description: extcon specifier for the Power Delivery > > - port: > - $ref: /schemas/graph.yaml#/properties/port > - description: A port node pointing to DPI host port node No existing users you are breaking? The commit msg should explain. ==> There are no it6505 users in community. > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: A port node pointing to DPI host port node > + > + properties: > + endpoint: > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > + unevaluatedProperties: false > + > + properties: > + link-frequencies: > + minItems: 1 > + maxItems: 1 > + description: Allowed max link frequencies in Hz > + > + port@1: > + $ref: /schemas/graph.yaml#/$defs/port-base > + unevaluatedProperties: false > + description: Video port for DP output > + > + properties: > + endpoint: > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > + unevaluatedProperties: false > + > + properties: > + data-lanes: > + oneOf: > + - minItems: 1 > + maxItems: 1 > + uniqueItems: true > + items: > + enum: > + - 0 > + - 1 > + description: For one lane operation. > + > + - minItems: 2 > + maxItems: 2 > + uniqueItems: true > + items: > + enum: > + - 0 > + - 1 > + description: For two lanes operation. > + > + - minItems: 4 > + maxItems: 4 > + uniqueItems: true > + items: > + enum: > + - 0 > + - 1 > + - 2 > + - 3 > + description: For four lanes operation. I would do just: data-lanes: minItems: 1 items: - enum: [ 0, 1 ] - const: 1 - const: 2 - const: 3 It does allow 3 lanes, but I don't think that's a big deal. What it does doesn't allow is any order and yours does. Rob ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-27 1:09 ` allen.chen @ 2022-10-27 3:02 ` Pin-yen Lin 0 siblings, 0 replies; 8+ messages in thread From: Pin-yen Lin @ 2022-10-27 3:02 UTC (permalink / raw) To: allen.chen Cc: robh, Jau-Chih.Tseng, Hermes.Wu, Kenneth.Hung, andrzej.hajda, narmstrong, robert.foss, Laurent.pinchart, jonas, jernej.skrabec, airlied, daniel, krzysztof.kozlowski+dt, dri-devel, devicetree, linux-kernel Hi Allen, On Thu, Oct 27, 2022 at 9:09 AM <allen.chen@ite.com.tw> wrote: > > Hi rob > > -----Original Message----- > From: Rob Herring <robh@kernel.org> > Sent: Tuesday, October 25, 2022 12:38 AM > To: Allen Chen (陳柏宇) <allen.chen@ite.com.tw> > Cc: Pin-Yen Lin <treapking@chromium.org>; Jau-Chih Tseng (曾昭智) <Jau-Chih.Tseng@ite.com.tw>; Hermes Wu (吳佳宏) <Hermes.Wu@ite.com.tw>; Kenneth Hung (洪家倫) <Kenneth.Hung@ite.com.tw>; Andrzej Hajda <andrzej.hajda@intel.com>; Neil Armstrong <narmstrong@baylibre.com>; Robert Foss <robert.foss@linaro.org>; Laurent Pinchart <Laurent.pinchart@ideasonboard.com>; Jonas Karlman <jonas@kwiboo.se>; Jernej Skrabec <jernej.skrabec@gmail.com>; David Airlie <airlied@linux.ie>; Daniel Vetter <daniel@ffwll.ch>; Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>; open list:DRM DRIVERS <dri-devel@lists.freedesktop.org>; open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>; open list <linux-kernel@vger.kernel.org> > Subject: Re: [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth > > On Wed, Oct 19, 2022 at 05:32:13PM +0800, allen wrote: > > From: allen chen <allen.chen@ite.com.tw> > > > > Add properties to restrict dp output data-lanes and clock. > > > > Signed-off-by: Pin-Yen Lin <treapking@chromium.org> > > Signed-off-by: Allen Chen <allen.chen@ite.com.tw> > > --- > > .../bindings/display/bridge/ite,it6505.yaml | 89 +++++++++++++++++-- > > 1 file changed, 83 insertions(+), 6 deletions(-) > > > > diff --git > > a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > index 833d11b2303a7..8e607b6929fc9 100644 > > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > > @@ -52,9 +52,70 @@ properties: > > maxItems: 1 > > description: extcon specifier for the Power Delivery > > > > - port: > > - $ref: /schemas/graph.yaml#/properties/port > > - description: A port node pointing to DPI host port node > > No existing users you are breaking? The commit msg should explain. > > ==> There are no it6505 users in community. I would say, currently there are no "upstream" users. So, no existing users to break. The term "community" is a bit vague and broad. Regards, Pin-yen > > + ports: > > + $ref: /schemas/graph.yaml#/properties/ports > > + > > + properties: > > + port@0: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: A port node pointing to DPI host port node > > + > > + properties: > > + endpoint: > > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > > + unevaluatedProperties: false > > + > > + properties: > > + link-frequencies: > > + minItems: 1 > > + maxItems: 1 > > + description: Allowed max link frequencies in Hz > > + > > + port@1: > > + $ref: /schemas/graph.yaml#/$defs/port-base > > + unevaluatedProperties: false > > + description: Video port for DP output > > + > > + properties: > > + endpoint: > > + $ref: /schemas/graph.yaml#/$defs/endpoint-base > > + unevaluatedProperties: false > > + > > + properties: > > + data-lanes: > > + oneOf: > > + - minItems: 1 > > + maxItems: 1 > > + uniqueItems: true > > + items: > > + enum: > > + - 0 > > + - 1 > > + description: For one lane operation. > > + > > + - minItems: 2 > > + maxItems: 2 > > + uniqueItems: true > > + items: > > + enum: > > + - 0 > > + - 1 > > + description: For two lanes operation. > > + > > + - minItems: 4 > > + maxItems: 4 > > + uniqueItems: true > > + items: > > + enum: > > + - 0 > > + - 1 > > + - 2 > > + - 3 > > + description: For four lanes operation. > > I would do just: > > data-lanes: > minItems: 1 > items: > - enum: [ 0, 1 ] > - const: 1 > - const: 2 > - const: 3 > > It does allow 3 lanes, but I don't think that's a big deal. What it does doesn't allow is any order and yours does. > > Rob ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v5 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt 2022-10-19 9:32 [PATCH v5 0/2] *** IT6505 driver read dt properties *** allen 2022-10-19 9:32 ` [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen @ 2022-10-19 9:32 ` allen 1 sibling, 0 replies; 8+ messages in thread From: allen @ 2022-10-19 9:32 UTC (permalink / raw) Cc: Allen Chen, Pin-Yen Lin, Jau-Chih Tseng, Hermes Wu, Kenneth Hung, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, open list:DRM DRIVERS, open list From: allen chen <allen.chen@ite.com.tw> Add driver to read data-lanes and link-frequencies from dt property to restrict output bandwidth. Signed-off-by: Allen chen <allen.chen@ite.com.tw> Signed-off-by: Pin-yen Lin <treapking@chromium.org> --- drivers/gpu/drm/bridge/ite-it6505.c | 80 +++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/ite-it6505.c b/drivers/gpu/drm/bridge/ite-it6505.c index a4302492cf8df..ed4536cde3140 100644 --- a/drivers/gpu/drm/bridge/ite-it6505.c +++ b/drivers/gpu/drm/bridge/ite-it6505.c @@ -437,6 +437,8 @@ struct it6505 { bool powered; bool hpd_state; u32 afe_setting; + u32 max_dpi_pixel_clock; + u32 max_lane_count; enum hdcp_state hdcp_status; struct delayed_work hdcp_work; struct work_struct hdcp_wait_ksv_list; @@ -1476,7 +1478,8 @@ static void it6505_parse_link_capabilities(struct it6505 *it6505) it6505->lane_count = link->num_lanes; DRM_DEV_DEBUG_DRIVER(dev, "Sink support %d lanes training", it6505->lane_count); - it6505->lane_count = min_t(int, it6505->lane_count, MAX_LANE_COUNT); + it6505->lane_count = min_t(int, it6505->lane_count, + it6505->max_lane_count); it6505->branch_device = drm_dp_is_branch(it6505->dpcd); DRM_DEV_DEBUG_DRIVER(dev, "Sink %sbranch device", @@ -2912,7 +2915,7 @@ it6505_bridge_mode_valid(struct drm_bridge *bridge, if (mode->flags & DRM_MODE_FLAG_INTERLACE) return MODE_NO_INTERLACE; - if (mode->clock > DPI_PIXEL_CLK_MAX) + if (mode->clock > it6505->max_dpi_pixel_clock) return MODE_CLOCK_HIGH; it6505->video_info.clock = mode->clock; @@ -3099,10 +3102,32 @@ static int it6505_init_pdata(struct it6505 *it6505) return 0; } +static int it6505_get_data_lanes_count(const struct device_node *endpoint, + const unsigned int min, + const unsigned int max) +{ + int ret; + + ret = of_property_count_u32_elems(endpoint, "data-lanes"); + if (ret < 0) + return ret; + + if (ret < min || ret > max) + return -EINVAL; + + return ret; +} + static void it6505_parse_dt(struct it6505 *it6505) { struct device *dev = &it6505->client->dev; + struct device_node *np = dev->of_node, *ep = NULL; + int len; + u64 link_frequencies; + u32 data_lanes[4]; u32 *afe_setting = &it6505->afe_setting; + u32 *max_lane_count = &it6505->max_lane_count; + u32 *max_dpi_pixel_clock = &it6505->max_dpi_pixel_clock; it6505->lane_swap_disabled = device_property_read_bool(dev, "no-laneswap"); @@ -3118,7 +3143,56 @@ static void it6505_parse_dt(struct it6505 *it6505) } else { *afe_setting = 0; } - DRM_DEV_DEBUG_DRIVER(dev, "using afe_setting: %d", *afe_setting); + + ep = of_graph_get_endpoint_by_regs(np, 1, 0); + of_node_put(ep); + + if (ep) { + len = it6505_get_data_lanes_count(ep, 1, 4); + + if (len > 0 && len != 3) { + of_property_read_u32_array(ep, "data-lanes", + data_lanes, len); + *max_lane_count = len; + } else { + *max_lane_count = MAX_LANE_COUNT; + dev_err(dev, "error data-lanes, use default"); + } + } else { + *max_lane_count = MAX_LANE_COUNT; + dev_err(dev, "error endpoint, use default"); + } + + ep = of_graph_get_endpoint_by_regs(np, 0, 0); + of_node_put(ep); + + if (ep) { + len = of_property_read_variable_u64_array(ep, + "link-frequencies", + &link_frequencies, 0, + 1); + if (len >= 0) { + do_div(link_frequencies, 1000); + if (link_frequencies > 297000) { + dev_err(dev, + "max pixel clock error, use default"); + *max_dpi_pixel_clock = DPI_PIXEL_CLK_MAX; + } else { + *max_dpi_pixel_clock = link_frequencies; + } + } else { + dev_err(dev, "error link frequencies, use default"); + *max_dpi_pixel_clock = DPI_PIXEL_CLK_MAX; + } + } else { + dev_err(dev, "error endpoint, use default"); + *max_dpi_pixel_clock = DPI_PIXEL_CLK_MAX; + } + + DRM_DEV_DEBUG_DRIVER(dev, "using afe_setting: %u, max_lane_count: %u", + it6505->afe_setting, it6505->max_lane_count); + DRM_DEV_DEBUG_DRIVER(dev, "using max_dpi_pixel_clock: %u kHz", + it6505->max_dpi_pixel_clock); } static ssize_t receive_timing_debugfs_show(struct file *file, char __user *buf, -- 2.25.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-10-28 1:52 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-19 9:32 [PATCH v5 0/2] *** IT6505 driver read dt properties *** allen 2022-10-19 9:32 ` [PATCH v5 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen 2022-10-24 16:37 ` Rob Herring 2022-10-26 4:03 ` Pin-yen Lin 2022-10-28 1:52 ` Krzysztof Kozlowski 2022-10-27 1:09 ` allen.chen 2022-10-27 3:02 ` Pin-yen Lin 2022-10-19 9:32 ` [PATCH v5 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt allen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).