* [PATCH v6 0/2] *** IT6505 driver read dt properties ***
@ 2022-10-27 3:01 allen
2022-10-27 3:01 ` [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen
2022-10-27 3:01 ` [PATCH v6 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt allen
0 siblings, 2 replies; 7+ messages in thread
From: allen @ 2022-10-27 3:01 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.
Changes in v6:
-Modified data-lanes description by suggestion.
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 | 68 ++++++++++++++--
drivers/gpu/drm/bridge/ite-it6505.c | 80 ++++++++++++++++++-
2 files changed, 139 insertions(+), 9 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-27 3:01 [PATCH v6 0/2] *** IT6505 driver read dt properties *** allen @ 2022-10-27 3:01 ` allen 2022-10-28 1:58 ` Krzysztof Kozlowski 2022-10-27 3:01 ` [PATCH v6 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt allen 1 sibling, 1 reply; 7+ messages in thread From: allen @ 2022-10-27 3:01 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 | 68 +++++++++++++++++-- 1 file changed, 62 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..b16a9d9127ddb 100644 --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml @@ -52,9 +52,49 @@ 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: + minItems: 1 + uniqueItems: true + items: + - enum: [ 0, 1 ] + - const: 1 + - const: 2 + - const: 3 + + required: + - port@0 + - port@1 required: - compatible @@ -63,6 +103,7 @@ required: - interrupts - reset-gpios - extcon + - ports additionalProperties: false @@ -85,9 +126,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 [flat|nested] 7+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-27 3:01 ` [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen @ 2022-10-28 1:58 ` Krzysztof Kozlowski 2022-11-02 6:54 ` allen.chen 0 siblings, 1 reply; 7+ messages in thread From: Krzysztof Kozlowski @ 2022-10-28 1:58 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, Rob Herring, Krzysztof Kozlowski, open list:DRM DRIVERS, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list On 26/10/2022 23:01, allen wrote: > From: allen chen <allen.chen@ite.com.tw> > > Add properties to restrict dp output data-lanes and clock. This is a friendly reminder during the review process. It seems my previous comments were not fully addressed. Maybe my feedback got lost between the quotes, maybe you just forgot to apply it. Please go back to the previous discussion and either implement all requested changes or keep discussing them. Thank you. Rob asked - Commit msg should explain reason for breaking users. > > 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 | 68 +++++++++++++++++-- > 1 file changed, 62 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..b16a9d9127ddb 100644 > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > @@ -52,9 +52,49 @@ 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: > + minItems: 1 > + uniqueItems: true > + items: > + - enum: [ 0, 1 ] > + - const: 1 > + - const: 2 > + - const: 3 > + This looks ok. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-10-28 1:58 ` Krzysztof Kozlowski @ 2022-11-02 6:54 ` allen.chen 2022-11-02 16:33 ` Krzysztof Kozlowski 0 siblings, 1 reply; 7+ messages in thread From: allen.chen @ 2022-11-02 6:54 UTC (permalink / raw) To: krzysztof.kozlowski Cc: treapking, Jau-Chih.Tseng, Hermes.Wu, Kenneth.Hung, andrzej.hajda, narmstrong, robert.foss, Laurent.pinchart, jonas, jernej.skrabec, airlied, daniel, robh+dt, krzysztof.kozlowski+dt, dri-devel, devicetree, linux-kernel hi -----Original Message----- From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Sent: Friday, October 28, 2022 9:59 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>; Rob Herring <robh+dt@kernel.org>; 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 v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth On 26/10/2022 23:01, allen wrote: > From: allen chen <allen.chen@ite.com.tw> > > Add properties to restrict dp output data-lanes and clock. This is a friendly reminder during the review process. It seems my previous comments were not fully addressed. Maybe my feedback got lost between the quotes, maybe you just forgot to apply it. Please go back to the previous discussion and either implement all requested changes or keep discussing them. Thank you. ==> I am sorry I didn't find the missing advice you said. Could you explain it again? Rob asked - Commit msg should explain reason for breaking users. > > 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 | 68 +++++++++++++++++-- > 1 file changed, 62 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..b16a9d9127ddb 100644 > --- a/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/ite,it6505.yaml > @@ -52,9 +52,49 @@ 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: > + minItems: 1 > + uniqueItems: true > + items: > + - enum: [ 0, 1 ] > + - const: 1 > + - const: 2 > + - const: 3 > + This looks ok. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-11-02 6:54 ` allen.chen @ 2022-11-02 16:33 ` Krzysztof Kozlowski 2022-11-03 8:27 ` allen.chen 0 siblings, 1 reply; 7+ messages in thread From: Krzysztof Kozlowski @ 2022-11-02 16:33 UTC (permalink / raw) To: allen.chen Cc: treapking, Jau-Chih.Tseng, Hermes.Wu, Kenneth.Hung, andrzej.hajda, narmstrong, robert.foss, Laurent.pinchart, jonas, jernej.skrabec, airlied, daniel, robh+dt, krzysztof.kozlowski+dt, dri-devel, devicetree, linux-kernel On 02/11/2022 02:54, allen.chen@ite.com.tw wrote: > On 26/10/2022 23:01, allen wrote: >> From: allen chen <allen.chen@ite.com.tw> >> >> Add properties to restrict dp output data-lanes and clock. > > This is a friendly reminder during the review process. > > It seems my previous comments were not fully addressed. Maybe my feedback got lost between the quotes, maybe you just forgot to apply it. > Please go back to the previous discussion and either implement all requested changes or keep discussing them. > > Thank you. > > ==> I am sorry I didn't find the missing advice you said. Could you explain it again? > > Rob asked - Commit msg should explain reason for breaking users. And where is the reason? I saw only one sentence "Add properties to restrict dp output data-lanes and clock." Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth 2022-11-02 16:33 ` Krzysztof Kozlowski @ 2022-11-03 8:27 ` allen.chen 0 siblings, 0 replies; 7+ messages in thread From: allen.chen @ 2022-11-03 8:27 UTC (permalink / raw) To: krzysztof.kozlowski Cc: treapking, Jau-Chih.Tseng, Hermes.Wu, Kenneth.Hung, andrzej.hajda, narmstrong, robert.foss, Laurent.pinchart, jonas, jernej.skrabec, airlied, daniel, robh+dt, krzysztof.kozlowski+dt, dri-devel, devicetree, linux-kernel hi -----Original Message----- From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Sent: Thursday, November 3, 2022 12:34 AM To: Allen Chen (陳柏宇) <allen.chen@ite.com.tw> Cc: 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@intel.com; narmstrong@baylibre.com; robert.foss@linaro.org; Laurent.pinchart@ideasonboard.com; jonas@kwiboo.se; jernej.skrabec@gmail.com; airlied@linux.ie; daniel@ffwll.ch; robh+dt@kernel.org; krzysztof.kozlowski+dt@linaro.org; dri-devel@lists.freedesktop.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth On 02/11/2022 02:54, allen.chen@ite.com.tw wrote: > On 26/10/2022 23:01, allen wrote: >> From: allen chen <allen.chen@ite.com.tw> >> >> Add properties to restrict dp output data-lanes and clock. > > This is a friendly reminder during the review process. > > It seems my previous comments were not fully addressed. Maybe my feedback got lost between the quotes, maybe you just forgot to apply it. > Please go back to the previous discussion and either implement all requested changes or keep discussing them. > > Thank you. > > ==> I am sorry I didn't find the missing advice you said. Could you explain it again? > > Rob asked - Commit msg should explain reason for breaking users. And where is the reason? I saw only one sentence "Add properties to restrict dp output data-lanes and clock." ==> I will add the commit msg in v7. Thanks for the suggestion. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v6 2/2] drm/bridge: add it6505 driver to read data-lanes and link-frequencies from dt 2022-10-27 3:01 [PATCH v6 0/2] *** IT6505 driver read dt properties *** allen 2022-10-27 3:01 ` [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen @ 2022-10-27 3:01 ` allen 1 sibling, 0 replies; 7+ messages in thread From: allen @ 2022-10-27 3:01 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 [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-11-03 8:28 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-27 3:01 [PATCH v6 0/2] *** IT6505 driver read dt properties *** allen 2022-10-27 3:01 ` [PATCH v6 1/2] dt-bindings: it6505: add properties to restrict output bandwidth allen 2022-10-28 1:58 ` Krzysztof Kozlowski 2022-11-02 6:54 ` allen.chen 2022-11-02 16:33 ` Krzysztof Kozlowski 2022-11-03 8:27 ` allen.chen 2022-10-27 3:01 ` [PATCH v6 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
all inboxes | Powered by JetHome®