* [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint
@ 2022-12-05 19:14 Kuogee Hsieh
2022-12-05 19:14 ` [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into " Kuogee Hsieh
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Kuogee Hsieh @ 2022-12-05 19:14 UTC (permalink / raw)
To: dri-devel, robdclark, sean, swboyd, dianders, vkoul, daniel,
airlied, agross, dmitry.baryshkov, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: Kuogee Hsieh, quic_abhinavk, quic_sbillaka, freedreno,
linux-arm-msm, linux-kernel
Add DP both data-lanes and link-frequencies property to dp_out endpoint and support
functions to DP driver.
Kuogee Hsieh (5):
arm64: dts: qcom: add data-lanes and link-freuencies into dp_out
endpoint
dt-bindings: msm/dp: add data-lanes and link-frequencies property
drm/msm/dp: parser data-lanes as property of dp_out endpoint
drm/msm/dp: parser link-frequencies as property of dp_out endpoint
drm/msm/dp: add support of max dp link rate
.../bindings/display/msm/dp-controller.yaml | 22 +++++++++----
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 6 +++-
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 6 +++-
drivers/gpu/drm/msm/dp/dp_display.c | 4 +++
drivers/gpu/drm/msm/dp/dp_panel.c | 7 ++--
drivers/gpu/drm/msm/dp/dp_panel.h | 1 +
drivers/gpu/drm/msm/dp/dp_parser.c | 38 ++++++++++++++++++----
drivers/gpu/drm/msm/dp/dp_parser.h | 2 ++
8 files changed, 68 insertions(+), 18 deletions(-)
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into dp_out endpoint
2022-12-05 19:14 [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint Kuogee Hsieh
@ 2022-12-05 19:14 ` Kuogee Hsieh
2022-12-05 20:49 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property Kuogee Hsieh
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Kuogee Hsieh @ 2022-12-05 19:14 UTC (permalink / raw)
To: dri-devel, robdclark, sean, swboyd, dianders, vkoul, daniel,
airlied, agross, dmitry.baryshkov, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: Kuogee Hsieh, quic_abhinavk, quic_sbillaka, freedreno,
linux-arm-msm, linux-kernel
Move data-lanes property from mdss_dp node to dp_out endpoint. Also
add link-frequencies property into dp_out endpoint as well. The last
frequency specified at link-frequencies will be the max link rate
supported by DP.
Changes in v5:
-- revert changes at sc7180.dtsi and sc7280.dtsi
-- add &dp_out to sc7180-trogdor.dtsi and sc7280-herobrine.dtsi
Changes in v6:
-- add data-lanes and link-frequencies to yaml
Changes in v7:
-- change 160000000 to 1620000000
-- separate yaml to different patch
Changes in v8:
-- correct Bjorn mail address to kernel.org
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
---
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 6 +++++-
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 6 +++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
index eae22e6..0ad50e2 100644
--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
@@ -814,7 +814,11 @@ hp_i2c: &i2c9 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&dp_hot_plug_det>;
- data-lanes = <0 1>;
+};
+
+&dp_out {
+ data-lanes = <0 1>;
+ link-frequencies = /bits/ 64 <162000000 270000000 540000000>;
};
&pm6150_adc {
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
index c11e371..3c7a9d8 100644
--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
@@ -442,7 +442,11 @@ ap_i2c_tpm: &i2c14 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&dp_hot_plug_det>;
- data-lanes = <0 1>;
+};
+
+&dp_out {
+ data-lanes = <0 1>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
};
&mdss_mdp {
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property
2022-12-05 19:14 [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint Kuogee Hsieh
2022-12-05 19:14 ` [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into " Kuogee Hsieh
@ 2022-12-05 19:14 ` Kuogee Hsieh
2022-12-05 21:04 ` Rob Herring
2022-12-05 21:34 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 3/5] drm/msm/dp: parser data-lanes as property of dp_out endpoint Kuogee Hsieh
` (2 subsequent siblings)
4 siblings, 2 replies; 12+ messages in thread
From: Kuogee Hsieh @ 2022-12-05 19:14 UTC (permalink / raw)
To: dri-devel, robdclark, sean, swboyd, dianders, vkoul, daniel,
airlied, agross, dmitry.baryshkov, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: Kuogee Hsieh, quic_abhinavk, quic_sbillaka, freedreno,
linux-arm-msm, linux-kernel
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
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
---
.../bindings/display/msm/dp-controller.yaml | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
index f2515af..13d2c3c 100644
--- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
@@ -79,12 +79,6 @@ properties:
aux-bus:
$ref: /schemas/display/dp-aux-bus.yaml#
- data-lanes:
- $ref: /schemas/types.yaml#/definitions/uint32-array
- minItems: 1
- maxItems: 4
- items:
- maximum: 3
"#sound-dai-cells":
const: 0
@@ -105,6 +99,19 @@ properties:
$ref: /schemas/graph.yaml#/properties/port
description: Output endpoint of the controller
+ properties:
+ endpoint:
+ $ref: /schemas/media/video-interfaces.yaml#
+
+ properties:
+ data-lanes:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+
+ link-frequencies:
+ $ref: /schemas/types.yaml#/definitions/uint64-array
+
+ additionalProperties: false
+
required:
- compatible
- reg
@@ -193,6 +200,9 @@ examples:
reg = <1>;
endpoint {
remote-endpoint = <&typec>;
+ data-lanes = <1 2>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000
+ 5400000000 8100000000>;
};
};
};
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v8 3/5] drm/msm/dp: parser data-lanes as property of dp_out endpoint
2022-12-05 19:14 [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint Kuogee Hsieh
2022-12-05 19:14 ` [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into " Kuogee Hsieh
2022-12-05 19:14 ` [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property Kuogee Hsieh
@ 2022-12-05 19:14 ` Kuogee Hsieh
2022-12-05 20:43 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 4/5] drm/msm/dp: parser link-frequencies " Kuogee Hsieh
2022-12-05 19:14 ` [PATCH v8 5/5] drm/msm/dp: add support of max dp link rate Kuogee Hsieh
4 siblings, 1 reply; 12+ messages in thread
From: Kuogee Hsieh @ 2022-12-05 19:14 UTC (permalink / raw)
To: dri-devel, robdclark, sean, swboyd, dianders, vkoul, daniel,
airlied, agross, dmitry.baryshkov, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: Kuogee Hsieh, quic_abhinavk, quic_sbillaka, freedreno,
linux-arm-msm, linux-kernel
Add capability to parser data-lanes as property of dp_out endpoint.
Also retain the original capability to parser data-lanes as property
of mdss_dp node to handle legacy case.
Changes in v6:
-- first patch after split parser patch into two
Changes in v7:
-- check "data-lanes" from endpoint first
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
---
drivers/gpu/drm/msm/dp/dp_parser.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_parser.c b/drivers/gpu/drm/msm/dp/dp_parser.c
index dd73221..b5f7e70 100644
--- a/drivers/gpu/drm/msm/dp/dp_parser.c
+++ b/drivers/gpu/drm/msm/dp/dp_parser.c
@@ -94,16 +94,25 @@ static int dp_parser_ctrl_res(struct dp_parser *parser)
static int dp_parser_misc(struct dp_parser *parser)
{
struct device_node *of_node = parser->pdev->dev.of_node;
- int len;
-
- len = drm_of_get_data_lanes_count(of_node, 1, DP_MAX_NUM_DP_LANES);
- if (len < 0) {
- DRM_WARN("Invalid property \"data-lanes\", default max DP lanes = %d\n",
- DP_MAX_NUM_DP_LANES);
- len = DP_MAX_NUM_DP_LANES;
+ int cnt;
+
+ /*
+ * data-lanes is the property of dp_out endpoint
+ */
+ cnt = drm_of_get_data_lanes_count_ep(of_node, 1, 0, 1, DP_MAX_NUM_DP_LANES);
+ if (cnt > 0)
+ parser->max_dp_lanes = cnt;
+ else {
+ /*
+ * legacy code, data-lanes is the property of mdss_dp node
+ */
+ cnt = drm_of_get_data_lanes_count(of_node, 1, DP_MAX_NUM_DP_LANES);
+ if (cnt > 0)
+ parser->max_dp_lanes = cnt;
+ else
+ parser->max_dp_lanes = DP_MAX_NUM_DP_LANES; /* 4 lanes */
}
- parser->max_dp_lanes = len;
return 0;
}
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v8 4/5] drm/msm/dp: parser link-frequencies as property of dp_out endpoint
2022-12-05 19:14 [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint Kuogee Hsieh
` (2 preceding siblings ...)
2022-12-05 19:14 ` [PATCH v8 3/5] drm/msm/dp: parser data-lanes as property of dp_out endpoint Kuogee Hsieh
@ 2022-12-05 19:14 ` Kuogee Hsieh
2022-12-05 20:51 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 5/5] drm/msm/dp: add support of max dp link rate Kuogee Hsieh
4 siblings, 1 reply; 12+ messages in thread
From: Kuogee Hsieh @ 2022-12-05 19:14 UTC (permalink / raw)
To: dri-devel, robdclark, sean, swboyd, dianders, vkoul, daniel,
airlied, agross, dmitry.baryshkov, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: Kuogee Hsieh, quic_abhinavk, quic_sbillaka, freedreno,
linux-arm-msm, linux-kernel
Add capability to parser and retrieve max DP link supported rate from
link-frequencies property of dp_out endpoint.
Changes in v6:
-- second patch after split parser patch into two patches
Changes in v7:
-- without checking cnt against DP_MAX_NUM_DP_LANES to retrieve link rate
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
---
drivers/gpu/drm/msm/dp/dp_parser.c | 19 +++++++++++++++++--
drivers/gpu/drm/msm/dp/dp_parser.h | 2 ++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_parser.c b/drivers/gpu/drm/msm/dp/dp_parser.c
index b5f7e70..037dad8 100644
--- a/drivers/gpu/drm/msm/dp/dp_parser.c
+++ b/drivers/gpu/drm/msm/dp/dp_parser.c
@@ -94,15 +94,28 @@ static int dp_parser_ctrl_res(struct dp_parser *parser)
static int dp_parser_misc(struct dp_parser *parser)
{
struct device_node *of_node = parser->pdev->dev.of_node;
+ struct device_node *endpoint;
+ u64 frequency;
int cnt;
/*
* data-lanes is the property of dp_out endpoint
*/
cnt = drm_of_get_data_lanes_count_ep(of_node, 1, 0, 1, DP_MAX_NUM_DP_LANES);
- if (cnt > 0)
+ if (cnt > 0) {
parser->max_dp_lanes = cnt;
- else {
+
+ endpoint = of_graph_get_endpoint_by_regs(of_node, 1, 0); /* port@1 */
+ cnt = of_property_count_u64_elems(endpoint, "link-frequencies");
+ if (cnt > 0) {
+ of_property_read_u64_index(endpoint, "link-frequencies",
+ cnt - 1, &frequency);
+ frequency /= 10; /* from symbol rate to link rate */
+ parser->max_dp_link_rate = (frequency / 1000); /* kbits */
+ } else {
+ parser->max_dp_link_rate = DP_LINK_RATE_HBR2; /* 540000 khz */
+ }
+ } else {
/*
* legacy code, data-lanes is the property of mdss_dp node
*/
@@ -111,6 +124,8 @@ static int dp_parser_misc(struct dp_parser *parser)
parser->max_dp_lanes = cnt;
else
parser->max_dp_lanes = DP_MAX_NUM_DP_LANES; /* 4 lanes */
+
+ parser->max_dp_link_rate = DP_LINK_RATE_HBR2; /* 540000 khz */
}
return 0;
diff --git a/drivers/gpu/drm/msm/dp/dp_parser.h b/drivers/gpu/drm/msm/dp/dp_parser.h
index 866c1a8..3ddf639 100644
--- a/drivers/gpu/drm/msm/dp/dp_parser.h
+++ b/drivers/gpu/drm/msm/dp/dp_parser.h
@@ -15,6 +15,7 @@
#define DP_LABEL "MDSS DP DISPLAY"
#define DP_MAX_PIXEL_CLK_KHZ 675000
#define DP_MAX_NUM_DP_LANES 4
+#define DP_LINK_RATE_HBR2 540000
enum dp_pm_type {
DP_CORE_PM,
@@ -119,6 +120,7 @@ struct dp_parser {
struct dp_io io;
struct dp_display_data disp_data;
u32 max_dp_lanes;
+ u32 max_dp_link_rate;
struct drm_bridge *next_bridge;
int (*parse)(struct dp_parser *parser);
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v8 5/5] drm/msm/dp: add support of max dp link rate
2022-12-05 19:14 [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint Kuogee Hsieh
` (3 preceding siblings ...)
2022-12-05 19:14 ` [PATCH v8 4/5] drm/msm/dp: parser link-frequencies " Kuogee Hsieh
@ 2022-12-05 19:14 ` Kuogee Hsieh
2022-12-05 20:55 ` Dmitry Baryshkov
4 siblings, 1 reply; 12+ messages in thread
From: Kuogee Hsieh @ 2022-12-05 19:14 UTC (permalink / raw)
To: dri-devel, robdclark, sean, swboyd, dianders, vkoul, daniel,
airlied, agross, dmitry.baryshkov, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: Kuogee Hsieh, quic_abhinavk, quic_sbillaka, freedreno,
linux-arm-msm, linux-kernel
By default, HBR2 (5.4G) is the max link link be supported. This patch add
the capability to support max link rate at HBR3 (8.1G).
Changes in v2:
-- add max link rate from dtsi
Changes in v3:
-- parser max_data_lanes and max_dp_link_rate from dp_out endpoint
Changes in v4:
-- delete unnecessary pr_err
Changes in v5:
-- split parser function into different patch
Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
drivers/gpu/drm/msm/dp/dp_display.c | 4 ++++
drivers/gpu/drm/msm/dp/dp_panel.c | 7 ++++---
drivers/gpu/drm/msm/dp/dp_panel.h | 1 +
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index bfd0aef..edee550 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -390,6 +390,10 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
struct edid *edid;
dp->panel->max_dp_lanes = dp->parser->max_dp_lanes;
+ dp->panel->max_dp_link_rate = dp->parser->max_dp_link_rate;
+
+ drm_dbg_dp(dp->drm_dev, "max_lanes=%d max_link_rate=%d\n",
+ dp->panel->max_dp_lanes, dp->panel->max_dp_link_rate);
rc = dp_panel_read_sink_caps(dp->panel, dp->dp_display.connector);
if (rc)
diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c
index 5149ceb..933fa9c 100644
--- a/drivers/gpu/drm/msm/dp/dp_panel.c
+++ b/drivers/gpu/drm/msm/dp/dp_panel.c
@@ -75,12 +75,13 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel)
link_info->rate = drm_dp_bw_code_to_link_rate(dpcd[DP_MAX_LINK_RATE]);
link_info->num_lanes = dpcd[DP_MAX_LANE_COUNT] & DP_MAX_LANE_COUNT_MASK;
+ /* Limit data lanes from data-lanes of endpoint properity of dtsi */
if (link_info->num_lanes > dp_panel->max_dp_lanes)
link_info->num_lanes = dp_panel->max_dp_lanes;
- /* Limit support upto HBR2 until HBR3 support is added */
- if (link_info->rate >= (drm_dp_bw_code_to_link_rate(DP_LINK_BW_5_4)))
- link_info->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_5_4);
+ /* Limit link rate from link-frequencies of endpoint properity of dtsi */
+ if (link_info->rate > dp_panel->max_dp_link_rate)
+ link_info->rate = dp_panel->max_dp_link_rate;
drm_dbg_dp(panel->drm_dev, "version: %d.%d\n", major, minor);
drm_dbg_dp(panel->drm_dev, "link_rate=%d\n", link_info->rate);
diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h
index d861197a..f04d021 100644
--- a/drivers/gpu/drm/msm/dp/dp_panel.h
+++ b/drivers/gpu/drm/msm/dp/dp_panel.h
@@ -50,6 +50,7 @@ struct dp_panel {
u32 vic;
u32 max_dp_lanes;
+ u32 max_dp_link_rate;
u32 max_bw_code;
};
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v8 3/5] drm/msm/dp: parser data-lanes as property of dp_out endpoint
2022-12-05 19:14 ` [PATCH v8 3/5] drm/msm/dp: parser data-lanes as property of dp_out endpoint Kuogee Hsieh
@ 2022-12-05 20:43 ` Dmitry Baryshkov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2022-12-05 20:43 UTC (permalink / raw)
To: Kuogee Hsieh, dri-devel, robdclark, sean, swboyd, dianders,
vkoul, daniel, airlied, agross, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: quic_abhinavk, quic_sbillaka, freedreno, linux-arm-msm, linux-kernel
On 5 December 2022 22:14:28 GMT+03:00, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote:
>Add capability to parser data-lanes as property of dp_out endpoint.
>Also retain the original capability to parser data-lanes as property
>of mdss_dp node to handle legacy case.
>
>Changes in v6:
>-- first patch after split parser patch into two
>
>Changes in v7:
>-- check "data-lanes" from endpoint first
>
>Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>---
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into dp_out endpoint
2022-12-05 19:14 ` [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into " Kuogee Hsieh
@ 2022-12-05 20:49 ` Dmitry Baryshkov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2022-12-05 20:49 UTC (permalink / raw)
To: Kuogee Hsieh, dri-devel, robdclark, sean, swboyd, dianders,
vkoul, daniel, airlied, agross, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: quic_abhinavk, quic_sbillaka, freedreno, linux-arm-msm, linux-kernel
On 5 December 2022 22:14:26 GMT+03:00, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote:
>Move data-lanes property from mdss_dp node to dp_out endpoint. Also
>add link-frequencies property into dp_out endpoint as well. The last
>frequency specified at link-frequencies will be the max link rate
>supported by DP.
>
>Changes in v5:
>-- revert changes at sc7180.dtsi and sc7280.dtsi
>-- add &dp_out to sc7180-trogdor.dtsi and sc7280-herobrine.dtsi
>
>Changes in v6:
>-- add data-lanes and link-frequencies to yaml
>
>Changes in v7:
>-- change 160000000 to 1620000000
>-- separate yaml to different patch
>
>Changes in v8:
>-- correct Bjorn mail address to kernel.org
>
>Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
>---
> arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi | 6 +++++-
> arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi | 6 +++++-
> 2 files changed, 10 insertions(+), 2 deletions(-)
>
>diff --git a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
>index eae22e6..0ad50e2 100644
>--- a/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
>+++ b/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
>@@ -814,7 +814,11 @@ hp_i2c: &i2c9 {
> status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&dp_hot_plug_det>;
>- data-lanes = <0 1>;
>+};
>+
>+&dp_out {
>+ data-lanes = <0 1>;
>+ link-frequencies = /bits/ 64 <162000000 270000000 540000000>;
This property still uses old values, it was not updated to Hz.
> };
>
> &pm6150_adc {
>diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
>index c11e371..3c7a9d8 100644
>--- a/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
>+++ b/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
>@@ -442,7 +442,11 @@ ap_i2c_tpm: &i2c14 {
> status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&dp_hot_plug_det>;
>- data-lanes = <0 1>;
>+};
>+
>+&dp_out {
>+ data-lanes = <0 1>;
>+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> };
>
> &mdss_mdp {
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v8 4/5] drm/msm/dp: parser link-frequencies as property of dp_out endpoint
2022-12-05 19:14 ` [PATCH v8 4/5] drm/msm/dp: parser link-frequencies " Kuogee Hsieh
@ 2022-12-05 20:51 ` Dmitry Baryshkov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2022-12-05 20:51 UTC (permalink / raw)
To: Kuogee Hsieh, dri-devel, robdclark, sean, swboyd, dianders,
vkoul, daniel, airlied, agross, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: quic_abhinavk, quic_sbillaka, freedreno, linux-arm-msm, linux-kernel
On 5 December 2022 22:14:29 GMT+03:00, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote:
>Add capability to parser and retrieve max DP link supported rate from
>link-frequencies property of dp_out endpoint.
>
>Changes in v6:
>-- second patch after split parser patch into two patches
>
>Changes in v7:
>-- without checking cnt against DP_MAX_NUM_DP_LANES to retrieve link rate
>
>Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
>---
> drivers/gpu/drm/msm/dp/dp_parser.c | 19 +++++++++++++++++--
> drivers/gpu/drm/msm/dp/dp_parser.h | 2 ++
> 2 files changed, 19 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/gpu/drm/msm/dp/dp_parser.c b/drivers/gpu/drm/msm/dp/dp_parser.c
>index b5f7e70..037dad8 100644
>--- a/drivers/gpu/drm/msm/dp/dp_parser.c
>+++ b/drivers/gpu/drm/msm/dp/dp_parser.c
>@@ -94,15 +94,28 @@ static int dp_parser_ctrl_res(struct dp_parser *parser)
> static int dp_parser_misc(struct dp_parser *parser)
> {
> struct device_node *of_node = parser->pdev->dev.of_node;
>+ struct device_node *endpoint;
>+ u64 frequency;
> int cnt;
>
> /*
> * data-lanes is the property of dp_out endpoint
> */
> cnt = drm_of_get_data_lanes_count_ep(of_node, 1, 0, 1, DP_MAX_NUM_DP_LANES);
>- if (cnt > 0)
>+ if (cnt > 0) {
> parser->max_dp_lanes = cnt;
>- else {
>+
>+ endpoint = of_graph_get_endpoint_by_regs(of_node, 1, 0); /* port@1 */
>+ cnt = of_property_count_u64_elems(endpoint, "link-frequencies");
Missing of_node_put()
>+ if (cnt > 0) {
>+ of_property_read_u64_index(endpoint, "link-frequencies",
>+ cnt - 1, &frequency);
>+ frequency /= 10; /* from symbol rate to link rate */
>+ parser->max_dp_link_rate = (frequency / 1000); /* kbits */
>+ } else {
>+ parser->max_dp_link_rate = DP_LINK_RATE_HBR2; /* 540000 khz */
>+ }
>+ } else {
> /*
> * legacy code, data-lanes is the property of mdss_dp node
> */
>@@ -111,6 +124,8 @@ static int dp_parser_misc(struct dp_parser *parser)
> parser->max_dp_lanes = cnt;
> else
> parser->max_dp_lanes = DP_MAX_NUM_DP_LANES; /* 4 lanes */
>+
>+ parser->max_dp_link_rate = DP_LINK_RATE_HBR2; /* 540000 khz */
Please, don't mix the dp lanes and dp link rate code. It would be much easier to read. And you can remove the duplicate assignment statements too.
> }
>
> return 0;
>diff --git a/drivers/gpu/drm/msm/dp/dp_parser.h b/drivers/gpu/drm/msm/dp/dp_parser.h
>index 866c1a8..3ddf639 100644
>--- a/drivers/gpu/drm/msm/dp/dp_parser.h
>+++ b/drivers/gpu/drm/msm/dp/dp_parser.h
>@@ -15,6 +15,7 @@
> #define DP_LABEL "MDSS DP DISPLAY"
> #define DP_MAX_PIXEL_CLK_KHZ 675000
> #define DP_MAX_NUM_DP_LANES 4
>+#define DP_LINK_RATE_HBR2 540000
>
> enum dp_pm_type {
> DP_CORE_PM,
>@@ -119,6 +120,7 @@ struct dp_parser {
> struct dp_io io;
> struct dp_display_data disp_data;
> u32 max_dp_lanes;
>+ u32 max_dp_link_rate;
> struct drm_bridge *next_bridge;
>
> int (*parse)(struct dp_parser *parser);
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v8 5/5] drm/msm/dp: add support of max dp link rate
2022-12-05 19:14 ` [PATCH v8 5/5] drm/msm/dp: add support of max dp link rate Kuogee Hsieh
@ 2022-12-05 20:55 ` Dmitry Baryshkov
0 siblings, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2022-12-05 20:55 UTC (permalink / raw)
To: Kuogee Hsieh, dri-devel, robdclark, sean, swboyd, dianders,
vkoul, daniel, airlied, agross, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: quic_abhinavk, quic_sbillaka, freedreno, linux-arm-msm, linux-kernel
On 5 December 2022 22:14:30 GMT+03:00, Kuogee Hsieh <quic_khsieh@quicinc.com> wrote:
>By default, HBR2 (5.4G) is the max link link be supported. This patch add
>the capability to support max link rate at HBR3 (8.1G).
This patch uses the actual limit specified by DT and removes the artificial limitation to 5.4 Gbps. Supporting HBR3 is a consequence of that.
>
>Changes in v2:
>-- add max link rate from dtsi
>
>Changes in v3:
>-- parser max_data_lanes and max_dp_link_rate from dp_out endpoint
>
>Changes in v4:
>-- delete unnecessary pr_err
>
>Changes in v5:
>-- split parser function into different patch
>
>Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
>Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>---
> drivers/gpu/drm/msm/dp/dp_display.c | 4 ++++
> drivers/gpu/drm/msm/dp/dp_panel.c | 7 ++++---
> drivers/gpu/drm/msm/dp/dp_panel.h | 1 +
> 3 files changed, 9 insertions(+), 3 deletions(-)
>
>diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
>index bfd0aef..edee550 100644
>--- a/drivers/gpu/drm/msm/dp/dp_display.c
>+++ b/drivers/gpu/drm/msm/dp/dp_display.c
>@@ -390,6 +390,10 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
> struct edid *edid;
>
> dp->panel->max_dp_lanes = dp->parser->max_dp_lanes;
>+ dp->panel->max_dp_link_rate = dp->parser->max_dp_link_rate;
>+
>+ drm_dbg_dp(dp->drm_dev, "max_lanes=%d max_link_rate=%d\n",
>+ dp->panel->max_dp_lanes, dp->panel->max_dp_link_rate);
>
> rc = dp_panel_read_sink_caps(dp->panel, dp->dp_display.connector);
> if (rc)
>diff --git a/drivers/gpu/drm/msm/dp/dp_panel.c b/drivers/gpu/drm/msm/dp/dp_panel.c
>index 5149ceb..933fa9c 100644
>--- a/drivers/gpu/drm/msm/dp/dp_panel.c
>+++ b/drivers/gpu/drm/msm/dp/dp_panel.c
>@@ -75,12 +75,13 @@ static int dp_panel_read_dpcd(struct dp_panel *dp_panel)
> link_info->rate = drm_dp_bw_code_to_link_rate(dpcd[DP_MAX_LINK_RATE]);
> link_info->num_lanes = dpcd[DP_MAX_LANE_COUNT] & DP_MAX_LANE_COUNT_MASK;
>
>+ /* Limit data lanes from data-lanes of endpoint properity of dtsi */
> if (link_info->num_lanes > dp_panel->max_dp_lanes)
> link_info->num_lanes = dp_panel->max_dp_lanes;
>
>- /* Limit support upto HBR2 until HBR3 support is added */
>- if (link_info->rate >= (drm_dp_bw_code_to_link_rate(DP_LINK_BW_5_4)))
>- link_info->rate = drm_dp_bw_code_to_link_rate(DP_LINK_BW_5_4);
>+ /* Limit link rate from link-frequencies of endpoint properity of dtsi */
>+ if (link_info->rate > dp_panel->max_dp_link_rate)
>+ link_info->rate = dp_panel->max_dp_link_rate;
>
> drm_dbg_dp(panel->drm_dev, "version: %d.%d\n", major, minor);
> drm_dbg_dp(panel->drm_dev, "link_rate=%d\n", link_info->rate);
>diff --git a/drivers/gpu/drm/msm/dp/dp_panel.h b/drivers/gpu/drm/msm/dp/dp_panel.h
>index d861197a..f04d021 100644
>--- a/drivers/gpu/drm/msm/dp/dp_panel.h
>+++ b/drivers/gpu/drm/msm/dp/dp_panel.h
>@@ -50,6 +50,7 @@ struct dp_panel {
>
> u32 vic;
> u32 max_dp_lanes;
>+ u32 max_dp_link_rate;
>
> u32 max_bw_code;
> };
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property
2022-12-05 19:14 ` [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property Kuogee Hsieh
@ 2022-12-05 21:04 ` Rob Herring
2022-12-05 21:34 ` Dmitry Baryshkov
1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring @ 2022-12-05 21:04 UTC (permalink / raw)
To: Kuogee Hsieh
Cc: dianders, dri-devel, linux-kernel, airlied, airlied, daniel,
dmitry.baryshkov, robdclark, konrad.dybcio, devicetree,
krzysztof.kozlowski+dt, swboyd, vkoul, freedreno, sean,
quic_sbillaka, robh+dt, agross, quic_abhinavk, linux-arm-msm,
andersson
On Mon, 05 Dec 2022 11:14:27 -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
>
> Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
> ---
> .../bindings/display/msm/dp-controller.yaml | 22 ++++++++++++++++------
> 1 file changed, 16 insertions(+), 6 deletions(-)
>
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:ports:properties:port@1:properties: 'properties' 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: properties:ports:properties:port@1:properties: 'additionalProperties' 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: properties:ports:properties:port@1:properties:properties: 'anyOf' conditional failed, one must be fixed:
'data-lanes' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
'type' was expected
from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/dp-controller.yaml: properties:ports:properties:port@1:properties:properties: 'anyOf' conditional failed, one must be fixed:
'link-frequencies' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
'type' was expected
from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/dp-controller.example.dtb: displayport-controller@ae90000: ports:port@1:endpoint: Unevaluated properties are not allowed ('data-lanes', 'link-frequencies' were unexpected)
From schema: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/1670267670-15832-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.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property
2022-12-05 19:14 ` [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property Kuogee Hsieh
2022-12-05 21:04 ` Rob Herring
@ 2022-12-05 21:34 ` Dmitry Baryshkov
1 sibling, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2022-12-05 21:34 UTC (permalink / raw)
To: Kuogee Hsieh, dri-devel, robdclark, sean, swboyd, dianders,
vkoul, daniel, airlied, agross, andersson, konrad.dybcio,
robh+dt, krzysztof.kozlowski+dt, devicetree, airlied
Cc: quic_abhinavk, quic_sbillaka, freedreno, linux-arm-msm, linux-kernel
On 5 December 2022 22:14:27 GMT+03:00, Kuogee Hsieh <quic_khsieh@quicinc.com> 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
>
>Signed-off-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
>---
> .../bindings/display/msm/dp-controller.yaml | 22 ++++++++++++++++------
> 1 file changed, 16 insertions(+), 6 deletions(-)
>
>diff --git a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>index f2515af..13d2c3c 100644
>--- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>+++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
>@@ -79,12 +79,6 @@ properties:
> aux-bus:
> $ref: /schemas/display/dp-aux-bus.yaml#
>
>- data-lanes:
>- $ref: /schemas/types.yaml#/definitions/uint32-array
>- minItems: 1
>- maxItems: 4
>- items:
>- maximum: 3
These properties can still be used, e.g. Bjorn is submitting patches with the old property. I think this should be marked with deprecated: true instead of removal.
>
> "#sound-dai-cells":
> const: 0
>@@ -105,6 +99,19 @@ properties:
> $ref: /schemas/graph.yaml#/properties/port
> description: Output endpoint of the controller
>
>+ properties:
>+ endpoint:
>+ $ref: /schemas/media/video-interfaces.yaml#
>+
>+ properties:
>+ data-lanes:
>+ $ref: /schemas/types.yaml#/definitions/uint32-array
>+
>+ link-frequencies:
>+ $ref: /schemas/types.yaml#/definitions/uint64-array
>+
>+ additionalProperties: false
>+
> required:
> - compatible
> - reg
>@@ -193,6 +200,9 @@ examples:
> reg = <1>;
> endpoint {
> remote-endpoint = <&typec>;
>+ data-lanes = <1 2>;
>+ link-frequencies = /bits/ 64 <1620000000 2700000000
>+ 5400000000 8100000000>;
> };
> };
> };
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2022-12-05 21:34 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-05 19:14 [PATCH v8 0/5] Add data-lanes and link-frequencies to dp_out endpoint Kuogee Hsieh
2022-12-05 19:14 ` [PATCH v8 1/5] arm64: dts: qcom: add data-lanes and link-freuencies into " Kuogee Hsieh
2022-12-05 20:49 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 2/5] dt-bindings: msm/dp: add data-lanes and link-frequencies property Kuogee Hsieh
2022-12-05 21:04 ` Rob Herring
2022-12-05 21:34 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 3/5] drm/msm/dp: parser data-lanes as property of dp_out endpoint Kuogee Hsieh
2022-12-05 20:43 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 4/5] drm/msm/dp: parser link-frequencies " Kuogee Hsieh
2022-12-05 20:51 ` Dmitry Baryshkov
2022-12-05 19:14 ` [PATCH v8 5/5] drm/msm/dp: add support of max dp link rate Kuogee Hsieh
2022-12-05 20:55 ` Dmitry Baryshkov
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).