linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/4] drm/msm/dpu: always use mdp device to scale bandwidth
@ 2021-04-07 15:01 Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 1/4] drm/msm/dpu: fill missing details in hw catalog for sdm845 and sm8[12]50 Dmitry Baryshkov
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-04-07 15:01 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Clark, Sean Paul, Rob Herring
  Cc: Jonathan Marek, David Airlie, Daniel Vetter, linux-arm-msm,
	dri-devel, freedreno, devicetree

Currently DPU driver scales bandwidth and core clock for sc7180 only,
while the rest of chips get static bandwidth votes. Make all chipsets
scale bandwidth and clock per composition requirements like sc7180 does.
Drop old voting path completely.

Changes since v1:
 - Add dts changes as requested by Kalyan Thota



^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/4] drm/msm/dpu: fill missing details in hw catalog for sdm845 and sm8[12]50
  2021-04-07 15:01 [PATCH v2 0/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
@ 2021-04-07 15:01 ` Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 2/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-04-07 15:01 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Clark, Sean Paul, Rob Herring
  Cc: Jonathan Marek, David Airlie, Daniel Vetter, linux-arm-msm,
	dri-devel, freedreno, devicetree

Fill clk_inefficiency_factor, bw_inefficiency_factor and
min_prefill_lines in hw catalog data for sdm845 and sm8[12]50.

Efficiency factors are blindly copied from sc7180 data, while
min_prefill_lines is based on downstream display driver.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
index 189f3533525c..a9f74c1177dd 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
@@ -817,6 +817,8 @@ static const struct dpu_perf_cfg sdm845_perf_data = {
 		{.rd_enable = 1, .wr_enable = 1},
 		{.rd_enable = 1, .wr_enable = 0}
 	},
+	.clk_inefficiency_factor = 105,
+	.bw_inefficiency_factor = 120,
 };
 
 static const struct dpu_perf_cfg sc7180_perf_data = {
@@ -852,6 +854,7 @@ static const struct dpu_perf_cfg sm8150_perf_data = {
 	.min_core_ib = 2400000,
 	.min_llcc_ib = 800000,
 	.min_dram_ib = 800000,
+	.min_prefill_lines = 24,
 	.danger_lut_tbl = {0xf, 0xffff, 0x0},
 	.qos_lut_tbl = {
 		{.nentry = ARRAY_SIZE(sm8150_qos_linear),
@@ -869,6 +872,8 @@ static const struct dpu_perf_cfg sm8150_perf_data = {
 		{.rd_enable = 1, .wr_enable = 1},
 		{.rd_enable = 1, .wr_enable = 0}
 	},
+	.clk_inefficiency_factor = 105,
+	.bw_inefficiency_factor = 120,
 };
 
 static const struct dpu_perf_cfg sm8250_perf_data = {
@@ -877,6 +882,7 @@ static const struct dpu_perf_cfg sm8250_perf_data = {
 	.min_core_ib = 4800000,
 	.min_llcc_ib = 0,
 	.min_dram_ib = 800000,
+	.min_prefill_lines = 35,
 	.danger_lut_tbl = {0xf, 0xffff, 0x0},
 	.qos_lut_tbl = {
 		{.nentry = ARRAY_SIZE(sc7180_qos_linear),
@@ -894,6 +900,8 @@ static const struct dpu_perf_cfg sm8250_perf_data = {
 		{.rd_enable = 1, .wr_enable = 1},
 		{.rd_enable = 1, .wr_enable = 0}
 	},
+	.clk_inefficiency_factor = 105,
+	.bw_inefficiency_factor = 120,
 };
 
 /*************************************************************
-- 
2.30.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 2/4] drm/msm/dpu: always use mdp device to scale bandwidth
  2021-04-07 15:01 [PATCH v2 0/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 1/4] drm/msm/dpu: fill missing details in hw catalog for sdm845 and sm8[12]50 Dmitry Baryshkov
@ 2021-04-07 15:01 ` Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target Dmitry Baryshkov
  3 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-04-07 15:01 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Clark, Sean Paul, Rob Herring
  Cc: Jonathan Marek, David Airlie, Daniel Vetter, linux-arm-msm,
	dri-devel, freedreno, devicetree

Currently DPU driver scales bandwidth and core clock for sc7180 only,
while the rest of chips get static bandwidth votes. Make all chipsets
scale bandwidth and clock per composition requirements like sc7180 does.
Drop old voting path completely.

Tested on RB3 (SDM845) and RB5 (SM8250).

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c  |  3 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 51 +-----------------------
 2 files changed, 2 insertions(+), 52 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 85f2c3564c96..fb061e666faa 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -933,8 +933,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 		DPU_DEBUG("REG_DMA is not defined");
 	}
 
-	if (of_device_is_compatible(dev->dev->of_node, "qcom,sc7180-mdss"))
-		dpu_kms_parse_data_bus_icc_path(dpu_kms);
+	dpu_kms_parse_data_bus_icc_path(dpu_kms);
 
 	pm_runtime_get_sync(&dpu_kms->pdev->dev);
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
index cd4078807db1..3416e9617ee9 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
@@ -31,40 +31,8 @@ struct dpu_mdss {
 	void __iomem *mmio;
 	struct dss_module_power mp;
 	struct dpu_irq_controller irq_controller;
-	struct icc_path *path[2];
-	u32 num_paths;
 };
 
-static int dpu_mdss_parse_data_bus_icc_path(struct drm_device *dev,
-						struct dpu_mdss *dpu_mdss)
-{
-	struct icc_path *path0 = of_icc_get(dev->dev, "mdp0-mem");
-	struct icc_path *path1 = of_icc_get(dev->dev, "mdp1-mem");
-
-	if (IS_ERR_OR_NULL(path0))
-		return PTR_ERR_OR_ZERO(path0);
-
-	dpu_mdss->path[0] = path0;
-	dpu_mdss->num_paths = 1;
-
-	if (!IS_ERR_OR_NULL(path1)) {
-		dpu_mdss->path[1] = path1;
-		dpu_mdss->num_paths++;
-	}
-
-	return 0;
-}
-
-static void dpu_mdss_icc_request_bw(struct msm_mdss *mdss)
-{
-	struct dpu_mdss *dpu_mdss = to_dpu_mdss(mdss);
-	int i;
-	u64 avg_bw = dpu_mdss->num_paths ? MAX_BW / dpu_mdss->num_paths : 0;
-
-	for (i = 0; i < dpu_mdss->num_paths; i++)
-		icc_set_bw(dpu_mdss->path[i], avg_bw, kBps_to_icc(MAX_BW));
-}
-
 static void dpu_mdss_irq(struct irq_desc *desc)
 {
 	struct dpu_mdss *dpu_mdss = irq_desc_get_handler_data(desc);
@@ -178,8 +146,6 @@ static int dpu_mdss_enable(struct msm_mdss *mdss)
 	struct dss_module_power *mp = &dpu_mdss->mp;
 	int ret;
 
-	dpu_mdss_icc_request_bw(mdss);
-
 	ret = msm_dss_enable_clk(mp->clk_config, mp->num_clk, true);
 	if (ret) {
 		DPU_ERROR("clock enable failed, ret:%d\n", ret);
@@ -213,15 +179,12 @@ static int dpu_mdss_disable(struct msm_mdss *mdss)
 {
 	struct dpu_mdss *dpu_mdss = to_dpu_mdss(mdss);
 	struct dss_module_power *mp = &dpu_mdss->mp;
-	int ret, i;
+	int ret;
 
 	ret = msm_dss_enable_clk(mp->clk_config, mp->num_clk, false);
 	if (ret)
 		DPU_ERROR("clock disable failed, ret:%d\n", ret);
 
-	for (i = 0; i < dpu_mdss->num_paths; i++)
-		icc_set_bw(dpu_mdss->path[i], 0, 0);
-
 	return ret;
 }
 
@@ -232,7 +195,6 @@ static void dpu_mdss_destroy(struct drm_device *dev)
 	struct dpu_mdss *dpu_mdss = to_dpu_mdss(priv->mdss);
 	struct dss_module_power *mp = &dpu_mdss->mp;
 	int irq;
-	int i;
 
 	pm_runtime_suspend(dev->dev);
 	pm_runtime_disable(dev->dev);
@@ -242,9 +204,6 @@ static void dpu_mdss_destroy(struct drm_device *dev)
 	msm_dss_put_clk(mp->clk_config, mp->num_clk);
 	devm_kfree(&pdev->dev, mp->clk_config);
 
-	for (i = 0; i < dpu_mdss->num_paths; i++)
-		icc_put(dpu_mdss->path[i]);
-
 	if (dpu_mdss->mmio)
 		devm_iounmap(&pdev->dev, dpu_mdss->mmio);
 	dpu_mdss->mmio = NULL;
@@ -276,12 +235,6 @@ int dpu_mdss_init(struct drm_device *dev)
 
 	DRM_DEBUG("mapped mdss address space @%pK\n", dpu_mdss->mmio);
 
-	if (!of_device_is_compatible(dev->dev->of_node, "qcom,sc7180-mdss")) {
-		ret = dpu_mdss_parse_data_bus_icc_path(dev, dpu_mdss);
-		if (ret)
-			return ret;
-	}
-
 	mp = &dpu_mdss->mp;
 	ret = msm_dss_parse_clock(pdev, mp);
 	if (ret) {
@@ -307,8 +260,6 @@ int dpu_mdss_init(struct drm_device *dev)
 
 	pm_runtime_enable(dev->dev);
 
-	dpu_mdss_icc_request_bw(priv->mdss);
-
 	return ret;
 
 irq_error:
-- 
2.30.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target
  2021-04-07 15:01 [PATCH v2 0/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 1/4] drm/msm/dpu: fill missing details in hw catalog for sdm845 and sm8[12]50 Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 2/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
@ 2021-04-07 15:01 ` Dmitry Baryshkov
  2021-05-28 15:33   ` Dmitry Baryshkov
  2021-04-07 15:01 ` [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target Dmitry Baryshkov
  3 siblings, 1 reply; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-04-07 15:01 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Clark, Sean Paul, Rob Herring
  Cc: Jonathan Marek, David Airlie, Daniel Vetter, linux-arm-msm,
	dri-devel, freedreno, devicetree

Move the bus clock to mdp device node,in order to facilitate bus band
width scaling on sdm845 target.

The parent device MDSS will not vote for bus bw, instead the vote will
be triggered by mdp device node. Since a minimum vote is required to
turn on bus clock, move the clock node to mdp device from where the
votes are requested.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 arch/arm64/boot/dts/qcom/sdm845.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 7395ef20b90e..55704804c2ca 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -4136,9 +4136,8 @@ mdss: mdss@ae00000 {
 			power-domains = <&dispcc MDSS_GDSC>;
 
 			clocks = <&gcc GCC_DISP_AHB_CLK>,
-				 <&gcc GCC_DISP_AXI_CLK>,
 				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
-			clock-names = "iface", "bus", "core";
+			clock-names = "iface", "core";
 
 			assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
 			assigned-clock-rates = <300000000>;
@@ -4166,11 +4165,12 @@ mdss_mdp: mdp@ae01000 {
 				      <0 0x0aeb0000 0 0x2008>;
 				reg-names = "mdp", "vbif";
 
-				clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+				clocks = <&gcc GCC_DISP_AXI_CLK>,
+					 <&dispcc DISP_CC_MDSS_AHB_CLK>,
 					 <&dispcc DISP_CC_MDSS_AXI_CLK>,
 					 <&dispcc DISP_CC_MDSS_MDP_CLK>,
 					 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
-				clock-names = "iface", "bus", "core", "vsync";
+				clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
 
 				assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
 						  <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
-- 
2.30.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target
  2021-04-07 15:01 [PATCH v2 0/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
                   ` (2 preceding siblings ...)
  2021-04-07 15:01 ` [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target Dmitry Baryshkov
@ 2021-04-07 15:01 ` Dmitry Baryshkov
  2021-05-31 14:58   ` Bjorn Andersson
  3 siblings, 1 reply; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-04-07 15:01 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Clark, Sean Paul, Rob Herring
  Cc: Jonathan Marek, David Airlie, Daniel Vetter, linux-arm-msm,
	dri-devel, freedreno, devicetree

Move the bus clock to mdp device node,in order to facilitate bus band
width scaling on sm8250 target.

The parent device MDSS will not vote for bus bw, instead the vote will
be triggered by mdp device node. Since a minimum vote is required to
turn on bus clock, move the clock node to mdp device from where the
votes are requested.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 394973e778f7..60fe2eaf06c5 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -2294,10 +2294,9 @@ mdss: mdss@ae00000 {
 			power-domains = <&dispcc MDSS_GDSC>;
 
 			clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
-				 <&gcc GCC_DISP_HF_AXI_CLK>,
 				 <&gcc GCC_DISP_SF_AXI_CLK>,
 				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
-			clock-names = "iface", "bus", "nrt_bus", "core";
+			clock-names = "iface", "nrt_bus", "core";
 
 			assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
 			assigned-clock-rates = <460000000>;
-- 
2.30.2


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target
  2021-04-07 15:01 ` [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target Dmitry Baryshkov
@ 2021-05-28 15:33   ` Dmitry Baryshkov
  2021-05-31 14:42     ` Bjorn Andersson
  0 siblings, 1 reply; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-05-28 15:33 UTC (permalink / raw)
  To: Andy Gross, Bjorn Andersson, Rob Clark, Sean Paul, Rob Herring
  Cc: Jonathan Marek, David Airlie, Daniel Vetter, linux-arm-msm,
	dri-devel, freedreno, devicetree

On 07/04/2021 18:01, Dmitry Baryshkov wrote:
> Move the bus clock to mdp device node,in order to facilitate bus band
> width scaling on sdm845 target.
> 
> The parent device MDSS will not vote for bus bw, instead the vote will
> be triggered by mdp device node. Since a minimum vote is required to
> turn on bus clock, move the clock node to mdp device from where the
> votes are requested.

drm/msm patches were merged through the msm tree (targeting 5.13). 
Shouldn't we also merge these two patches (targeting 5.13 as fixes or 5.14)?

> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>   arch/arm64/boot/dts/qcom/sdm845.dtsi | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index 7395ef20b90e..55704804c2ca 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -4136,9 +4136,8 @@ mdss: mdss@ae00000 {
>   			power-domains = <&dispcc MDSS_GDSC>;
>   
>   			clocks = <&gcc GCC_DISP_AHB_CLK>,
> -				 <&gcc GCC_DISP_AXI_CLK>,
>   				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
> -			clock-names = "iface", "bus", "core";
> +			clock-names = "iface", "core";
>   
>   			assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
>   			assigned-clock-rates = <300000000>;
> @@ -4166,11 +4165,12 @@ mdss_mdp: mdp@ae01000 {
>   				      <0 0x0aeb0000 0 0x2008>;
>   				reg-names = "mdp", "vbif";
>   
> -				clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> +				clocks = <&gcc GCC_DISP_AXI_CLK>,
> +					 <&dispcc DISP_CC_MDSS_AHB_CLK>,
>   					 <&dispcc DISP_CC_MDSS_AXI_CLK>,
>   					 <&dispcc DISP_CC_MDSS_MDP_CLK>,
>   					 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
> -				clock-names = "iface", "bus", "core", "vsync";
> +				clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
>   
>   				assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
>   						  <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
> 


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target
  2021-05-28 15:33   ` Dmitry Baryshkov
@ 2021-05-31 14:42     ` Bjorn Andersson
  2021-05-31 18:03       ` Dmitry Baryshkov
  0 siblings, 1 reply; 10+ messages in thread
From: Bjorn Andersson @ 2021-05-31 14:42 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Andy Gross, Rob Clark, Sean Paul, Rob Herring, Jonathan Marek,
	David Airlie, Daniel Vetter, linux-arm-msm, dri-devel, freedreno,
	devicetree

On Fri 28 May 10:33 CDT 2021, Dmitry Baryshkov wrote:

> On 07/04/2021 18:01, Dmitry Baryshkov wrote:
> > Move the bus clock to mdp device node,in order to facilitate bus band
> > width scaling on sdm845 target.
> > 
> > The parent device MDSS will not vote for bus bw, instead the vote will
> > be triggered by mdp device node. Since a minimum vote is required to
> > turn on bus clock, move the clock node to mdp device from where the
> > votes are requested.
> 
> drm/msm patches were merged through the msm tree (targeting 5.13). Shouldn't
> we also merge these two patches (targeting 5.13 as fixes or 5.14)?
> 

Does the vote for the bus clock result in an improvement or is the
device simply not working without it?

Regards,
Bjorn

> > 
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >   arch/arm64/boot/dts/qcom/sdm845.dtsi | 8 ++++----
> >   1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> > index 7395ef20b90e..55704804c2ca 100644
> > --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> > @@ -4136,9 +4136,8 @@ mdss: mdss@ae00000 {
> >   			power-domains = <&dispcc MDSS_GDSC>;
> >   			clocks = <&gcc GCC_DISP_AHB_CLK>,
> > -				 <&gcc GCC_DISP_AXI_CLK>,
> >   				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
> > -			clock-names = "iface", "bus", "core";
> > +			clock-names = "iface", "core";
> >   			assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
> >   			assigned-clock-rates = <300000000>;
> > @@ -4166,11 +4165,12 @@ mdss_mdp: mdp@ae01000 {
> >   				      <0 0x0aeb0000 0 0x2008>;
> >   				reg-names = "mdp", "vbif";
> > -				clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> > +				clocks = <&gcc GCC_DISP_AXI_CLK>,
> > +					 <&dispcc DISP_CC_MDSS_AHB_CLK>,
> >   					 <&dispcc DISP_CC_MDSS_AXI_CLK>,
> >   					 <&dispcc DISP_CC_MDSS_MDP_CLK>,
> >   					 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
> > -				clock-names = "iface", "bus", "core", "vsync";
> > +				clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
> >   				assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
> >   						  <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
> > 
> 
> 
> -- 
> With best wishes
> Dmitry

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target
  2021-04-07 15:01 ` [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target Dmitry Baryshkov
@ 2021-05-31 14:58   ` Bjorn Andersson
  2021-05-31 17:28     ` Dmitry Baryshkov
  0 siblings, 1 reply; 10+ messages in thread
From: Bjorn Andersson @ 2021-05-31 14:58 UTC (permalink / raw)
  To: Dmitry Baryshkov
  Cc: Andy Gross, Rob Clark, Sean Paul, Rob Herring, Jonathan Marek,
	David Airlie, Daniel Vetter, linux-arm-msm, dri-devel, freedreno,
	devicetree

On Wed 07 Apr 10:01 CDT 2021, Dmitry Baryshkov wrote:

> Move the bus clock to mdp device node,in order to facilitate bus band
> width scaling on sm8250 target.
> 
> The parent device MDSS will not vote for bus bw, instead the vote will
> be triggered by mdp device node. Since a minimum vote is required to
> turn on bus clock, move the clock node to mdp device from where the
> votes are requested.
> 

This commit message makes sense for the other commit, where you move the
"bus" into the mdp. Do you mind me changing this to:

The bus clock is voted by the DPU, so remove it from the MDSS node.

Regards,
Bjorn

> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> ---
>  arch/arm64/boot/dts/qcom/sm8250.dtsi | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index 394973e778f7..60fe2eaf06c5 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -2294,10 +2294,9 @@ mdss: mdss@ae00000 {
>  			power-domains = <&dispcc MDSS_GDSC>;
>  
>  			clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> -				 <&gcc GCC_DISP_HF_AXI_CLK>,
>  				 <&gcc GCC_DISP_SF_AXI_CLK>,
>  				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
> -			clock-names = "iface", "bus", "nrt_bus", "core";
> +			clock-names = "iface", "nrt_bus", "core";
>  
>  			assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
>  			assigned-clock-rates = <460000000>;
> -- 
> 2.30.2
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target
  2021-05-31 14:58   ` Bjorn Andersson
@ 2021-05-31 17:28     ` Dmitry Baryshkov
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-05-31 17:28 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Andy Gross, Rob Clark, Sean Paul, Rob Herring, Jonathan Marek,
	David Airlie, Daniel Vetter,
	open list:DRM DRIVER FOR MSM ADRENO GPU,
	open list:DRM DRIVER FOR MSM ADRENO GPU, freedreno,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS

On Mon, 31 May 2021 at 17:58, Bjorn Andersson
<bjorn.andersson@linaro.org> wrote:
>
> On Wed 07 Apr 10:01 CDT 2021, Dmitry Baryshkov wrote:
>
> > Move the bus clock to mdp device node,in order to facilitate bus band
> > width scaling on sm8250 target.
> >
> > The parent device MDSS will not vote for bus bw, instead the vote will
> > be triggered by mdp device node. Since a minimum vote is required to
> > turn on bus clock, move the clock node to mdp device from where the
> > votes are requested.
> >
>
> This commit message makes sense for the other commit, where you move the
> "bus" into the mdp. Do you mind me changing this to:
>
> The bus clock is voted by the DPU, so remove it from the MDSS node.

I don't mind, please update the commit message as you see fit.

>
> Regards,
> Bjorn
>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >  arch/arm64/boot/dts/qcom/sm8250.dtsi | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> > index 394973e778f7..60fe2eaf06c5 100644
> > --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> > @@ -2294,10 +2294,9 @@ mdss: mdss@ae00000 {
> >                       power-domains = <&dispcc MDSS_GDSC>;
> >
> >                       clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> > -                              <&gcc GCC_DISP_HF_AXI_CLK>,
> >                                <&gcc GCC_DISP_SF_AXI_CLK>,
> >                                <&dispcc DISP_CC_MDSS_MDP_CLK>;
> > -                     clock-names = "iface", "bus", "nrt_bus", "core";
> > +                     clock-names = "iface", "nrt_bus", "core";
> >
> >                       assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
> >                       assigned-clock-rates = <460000000>;
> > --
> > 2.30.2
> >



-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target
  2021-05-31 14:42     ` Bjorn Andersson
@ 2021-05-31 18:03       ` Dmitry Baryshkov
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2021-05-31 18:03 UTC (permalink / raw)
  To: Bjorn Andersson, Kalyan Thota
  Cc: Andy Gross, Rob Clark, Sean Paul, Rob Herring, Jonathan Marek,
	David Airlie, Daniel Vetter, linux-arm-msm, dri-devel, freedreno,
	devicetree

On 31/05/2021 17:42, Bjorn Andersson wrote:
> On Fri 28 May 10:33 CDT 2021, Dmitry Baryshkov wrote:
> 
>> On 07/04/2021 18:01, Dmitry Baryshkov wrote:
>>> Move the bus clock to mdp device node,in order to facilitate bus band
>>> width scaling on sdm845 target.
>>>
>>> The parent device MDSS will not vote for bus bw, instead the vote will
>>> be triggered by mdp device node. Since a minimum vote is required to
>>> turn on bus clock, move the clock node to mdp device from where the
>>> votes are requested.
>>
>> drm/msm patches were merged through the msm tree (targeting 5.13). Shouldn't
>> we also merge these two patches (targeting 5.13 as fixes or 5.14)?
>>
> 
> Does the vote for the bus clock result in an improvement or is the
> device simply not working without it?

This was requested by Kalyan Thota [1]. If I understand correctly, if 
the bootloader does not setup the bus vote, clock might not be enabled. 
Thus it has to be used from the device which handles bus voting. Kalyan 
might be in better position to comment on this.

Compare with 
https://lore.kernel.org/linux-arm-msm/1594899334-19772-2-git-send-email-kalyan_t@codeaurora.org/


[1]: 
https://lore.kernel.org/linux-arm-msm/04b4612dfd3f651ead068725409211a0@codeaurora.org/

> 
> Regards,
> Bjorn
> 
>>>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
>>> ---
>>>    arch/arm64/boot/dts/qcom/sdm845.dtsi | 8 ++++----
>>>    1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
>>> index 7395ef20b90e..55704804c2ca 100644
>>> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
>>> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
>>> @@ -4136,9 +4136,8 @@ mdss: mdss@ae00000 {
>>>    			power-domains = <&dispcc MDSS_GDSC>;
>>>    			clocks = <&gcc GCC_DISP_AHB_CLK>,
>>> -				 <&gcc GCC_DISP_AXI_CLK>,
>>>    				 <&dispcc DISP_CC_MDSS_MDP_CLK>;
>>> -			clock-names = "iface", "bus", "core";
>>> +			clock-names = "iface", "core";
>>>    			assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>;
>>>    			assigned-clock-rates = <300000000>;
>>> @@ -4166,11 +4165,12 @@ mdss_mdp: mdp@ae01000 {
>>>    				      <0 0x0aeb0000 0 0x2008>;
>>>    				reg-names = "mdp", "vbif";
>>> -				clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
>>> +				clocks = <&gcc GCC_DISP_AXI_CLK>,
>>> +					 <&dispcc DISP_CC_MDSS_AHB_CLK>,
>>>    					 <&dispcc DISP_CC_MDSS_AXI_CLK>,
>>>    					 <&dispcc DISP_CC_MDSS_MDP_CLK>,
>>>    					 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
>>> -				clock-names = "iface", "bus", "core", "vsync";
>>> +				clock-names = "gcc-bus", "iface", "bus", "core", "vsync";
>>>    				assigned-clocks = <&dispcc DISP_CC_MDSS_MDP_CLK>,
>>>    						  <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
>>>
>>
>>
>> -- 
>> With best wishes
>> Dmitry


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-05-31 18:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-07 15:01 [PATCH v2 0/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
2021-04-07 15:01 ` [PATCH v2 1/4] drm/msm/dpu: fill missing details in hw catalog for sdm845 and sm8[12]50 Dmitry Baryshkov
2021-04-07 15:01 ` [PATCH v2 2/4] drm/msm/dpu: always use mdp device to scale bandwidth Dmitry Baryshkov
2021-04-07 15:01 ` [PATCH v2 3/4] arm64: dts: sdm845: move bus clock to mdp node for sdm845 target Dmitry Baryshkov
2021-05-28 15:33   ` Dmitry Baryshkov
2021-05-31 14:42     ` Bjorn Andersson
2021-05-31 18:03       ` Dmitry Baryshkov
2021-04-07 15:01 ` [PATCH v2 4/4] arm64: dts: sm8250: move bus clock to mdp node for sm8250 target Dmitry Baryshkov
2021-05-31 14:58   ` Bjorn Andersson
2021-05-31 17:28     ` 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).