2017-03-06 04:43:35

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v4 0/5] Fix the parse_dt of exynos dsi and remove the OF graph

Hi All,

The dsi + panel is a parental relationship, so OF grpah is not needed.
Therefore, the current dsi_parse_dt function will throw an error,
because there is no linked OF graph for case such as fimd + dsi +
panel.

So the 1/5 patch parse the Pll, burst and esc clock frequency
properties in dsi_parse_dt and modified to create a bridge_node only
if there is an OF graph associated with dsi.

Also fixed the dts, which depend on the 1/5 patch. So removed the
ports node and move burst and esc clock frequency properties to the
parent (DSI node).

Changes for V4:
- Squashed patch 2, 3 and 4.
- Added Reviewed-by: Andrzej Hajda <[email protected]> on all patches.

Changes for V3:
- Split the patches considering the bisectability problem.

Changes for V2:
- Added the clear explanation for commit. (1/5 patch)
- Fixed it to the same subject as the actual work. (2/5 ~ 5/5 patches)

Best Regards,
Hoegeun

Hoegeun Kwon (5):
arm64: dts: exynos: Add the burst and esc clock frequency properties
to DSI node
arm: dts: Add the burst and esc clock frequency properties to DSI node
drm/exynos: dsi: Fix the parse_dt function
arm64: dts: exynos: Remove the OF graph from DSI node
arm: dts: Remove the OF graph from DSI node

arch/arm/boot/dts/exynos3250-rinato.dts | 23 ++--------------
arch/arm/boot/dts/exynos4210-trats.dts | 23 ++--------------
arch/arm/boot/dts/exynos4412-trats2.dts | 23 ++--------------
.../boot/dts/exynos/exynos5433-tm2-common.dtsi | 16 ++---------
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 32 ++++++----------------
5 files changed, 16 insertions(+), 101 deletions(-)

--
1.9.1


2017-03-06 04:43:34

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v4 1/5] arm64: dts: exynos: Add the burst and esc clock frequency properties to DSI node

The OF graph is not needed because the panel is a child of dsi. Add
the burst and esc clock frequency properties to the parent (DSI node).

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
index 6ce93a3..e31e20c 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -298,6 +298,8 @@
status = "okay";
vddcore-supply = <&ldo6_reg>;
vddio-supply = <&ldo7_reg>;
+ samsung,burst-clock-frequency = <512000000>;
+ samsung,esc-clock-frequency = <16000000>;
samsung,pll-clock-frequency = <24000000>;
pinctrl-names = "default";
pinctrl-0 = <&te_irq>;
--
1.9.1

2017-03-06 04:43:28

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v4 5/5] arm: dts: Remove the OF graph from DSI node

The OF graph is not needed because the panel is a child of dsi. Remove
the ports node in DSI node, and port node in panel node.

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
arch/arm/boot/dts/exynos3250-rinato.dts | 21 ---------------------
arch/arm/boot/dts/exynos4210-trats.dts | 21 ---------------------
arch/arm/boot/dts/exynos4412-trats2.dts | 21 ---------------------
3 files changed, 63 deletions(-)

diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index c9f191c..82e676a 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -220,21 +220,6 @@
samsung,pll-clock-frequency = <24000000>;
status = "okay";

- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@1 {
- reg = <1>;
-
- dsi_out: endpoint {
- remote-endpoint = <&dsi_in>;
- samsung,burst-clock-frequency = <250000000>;
- samsung,esc-clock-frequency = <20000000>;
- };
- };
- };
-
panel@0 {
compatible = "samsung,s6e63j0x03";
reg = <0>;
@@ -264,12 +249,6 @@
vsync-len = <2>;
};
};
-
- port {
- dsi_in: endpoint {
- remote-endpoint = <&dsi_out>;
- };
- };
};
};

diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
index 1743ca8..9452bed 100644
--- a/arch/arm/boot/dts/exynos4210-trats.dts
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -202,21 +202,6 @@
samsung,pll-clock-frequency = <24000000>;
status = "okay";

- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@1 {
- reg = <1>;
-
- dsi_out: endpoint {
- remote-endpoint = <&dsi_in>;
- samsung,burst-clock-frequency = <500000000>;
- samsung,esc-clock-frequency = <20000000>;
- };
- };
- };
-
panel@0 {
reg = <0>;
compatible = "samsung,s6e8aa0";
@@ -244,12 +229,6 @@
vsync-len = <2>;
};
};
-
- port {
- dsi_in: endpoint {
- remote-endpoint = <&dsi_out>;
- };
- };
};
};

diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 82221a0..86ce5e5 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -390,21 +390,6 @@
samsung,pll-clock-frequency = <24000000>;
status = "okay";

- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@1 {
- reg = <1>;
-
- dsi_out: endpoint {
- remote-endpoint = <&dsi_in>;
- samsung,burst-clock-frequency = <500000000>;
- samsung,esc-clock-frequency = <20000000>;
- };
- };
- };
-
panel@0 {
compatible = "samsung,s6e8aa0";
reg = <0>;
@@ -432,12 +417,6 @@
vsync-len = <2>;
};
};
-
- port {
- dsi_in: endpoint {
- remote-endpoint = <&dsi_out>;
- };
- };
};
};

--
1.9.1

2017-03-06 04:43:32

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v4 3/5] drm/exynos: dsi: Fix the parse_dt function

The dsi + panel is a parental relationship, so OF grpah is not needed.
Therefore, the current dsi_parse_dt function will throw an error,
because there is no linked OF graph for case such as fimd + dsi +
panel. So this patch parse the Pll, burst and esc clock frequency
properties in dsi_parse_dt and modified to create a bridge_node only
if there is an OF graph associated with dsi.
So I think the ABI breakage is needed.

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 32 ++++++++------------------------
1 file changed, 8 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index f5c04d0..2d4e118 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1652,39 +1652,23 @@ static int exynos_dsi_parse_dt(struct exynos_dsi *dsi)
if (ret < 0)
return ret;

- ep = of_graph_get_endpoint_by_regs(node, DSI_PORT_OUT, 0);
- if (!ep) {
- dev_err(dev, "no output port with endpoint specified\n");
- return -EINVAL;
- }
-
- ret = exynos_dsi_of_read_u32(ep, "samsung,burst-clock-frequency",
+ ret = exynos_dsi_of_read_u32(node, "samsung,burst-clock-frequency",
&dsi->burst_clk_rate);
if (ret < 0)
- goto end;
+ return ret;

- ret = exynos_dsi_of_read_u32(ep, "samsung,esc-clock-frequency",
+ ret = exynos_dsi_of_read_u32(node, "samsung,esc-clock-frequency",
&dsi->esc_clk_rate);
if (ret < 0)
- goto end;
-
- of_node_put(ep);
+ return ret;

ep = of_graph_get_next_endpoint(node, NULL);
- if (!ep) {
- ret = -EINVAL;
- goto end;
- }
-
- dsi->bridge_node = of_graph_get_remote_port_parent(ep);
- if (!dsi->bridge_node) {
- ret = -EINVAL;
- goto end;
+ if (ep) {
+ dsi->bridge_node = of_graph_get_remote_port_parent(ep);
+ of_node_put(ep);
}
-end:
- of_node_put(ep);

- return ret;
+ return 0;
}

static int exynos_dsi_bind(struct device *dev, struct device *master,
--
1.9.1

2017-03-06 04:43:30

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v4 4/5] arm64: dts: exynos: Remove the OF graph from DSI node

The OF graph is not needed because the panel is a child of dsi. Remove
the ports node in DSI node.

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi | 14 --------------
1 file changed, 14 deletions(-)

diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
index e31e20c..77ba238 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -303,20 +303,6 @@
samsung,pll-clock-frequency = <24000000>;
pinctrl-names = "default";
pinctrl-0 = <&te_irq>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@1 {
- reg = <1>;
-
- dsi_out: endpoint {
- samsung,burst-clock-frequency = <512000000>;
- samsung,esc-clock-frequency = <16000000>;
- };
- };
- };
};

&hdmi {
--
1.9.1

2017-03-06 04:43:33

by Hoegeun Kwon

[permalink] [raw]
Subject: [PATCH v4 2/5] arm: dts: Add the burst and esc clock frequency properties to DSI node

The OF graph is not needed because the panel is a child of dsi. Add
the burst and esc clock frequency properties to the parent (DSI node).

Signed-off-by: Hoegeun Kwon <[email protected]>
Reviewed-by: Andrzej Hajda <[email protected]>
---
arch/arm/boot/dts/exynos3250-rinato.dts | 2 ++
arch/arm/boot/dts/exynos4210-trats.dts | 2 ++
arch/arm/boot/dts/exynos4412-trats2.dts | 2 ++
3 files changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index 548413e..c9f191c 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -215,6 +215,8 @@
&dsi_0 {
vddcore-supply = <&ldo6_reg>;
vddio-supply = <&ldo6_reg>;
+ samsung,burst-clock-frequency = <250000000>;
+ samsung,esc-clock-frequency = <20000000>;
samsung,pll-clock-frequency = <24000000>;
status = "okay";

diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
index 0ca1b4d..1743ca8 100644
--- a/arch/arm/boot/dts/exynos4210-trats.dts
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -197,6 +197,8 @@
&dsi_0 {
vddcore-supply = <&vusb_reg>;
vddio-supply = <&vmipi_reg>;
+ samsung,burst-clock-frequency = <500000000>;
+ samsung,esc-clock-frequency = <20000000>;
samsung,pll-clock-frequency = <24000000>;
status = "okay";

diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 41ecd6d..82221a0 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -385,6 +385,8 @@
&dsi_0 {
vddcore-supply = <&ldo8_reg>;
vddio-supply = <&ldo10_reg>;
+ samsung,burst-clock-frequency = <500000000>;
+ samsung,esc-clock-frequency = <20000000>;
samsung,pll-clock-frequency = <24000000>;
status = "okay";

--
1.9.1

2017-03-06 04:53:36

by Andi Shyti

[permalink] [raw]
Subject: Re: [PATCH v4 1/5] arm64: dts: exynos: Add the burst and esc clock frequency properties to DSI node

Hi Hoegeun,

On Mon, Mar 06, 2017 at 01:42:19PM +0900, Hoegeun Kwon wrote:
> The OF graph is not needed because the panel is a child of dsi. Add
> the burst and esc clock frequency properties to the parent (DSI node).
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>

you forgot to put me in Cc and add my

Reviewed-by: Andi Shyti <[email protected]>

Andi

2017-03-06 04:54:08

by Andi Shyti

[permalink] [raw]
Subject: Re: [PATCH v4 5/5] arm: dts: Remove the OF graph from DSI node

Hi Hoegeun,

On Mon, Mar 06, 2017 at 01:42:23PM +0900, Hoegeun Kwon wrote:
> The OF graph is not needed because the panel is a child of dsi. Remove
> the ports node in DSI node, and port node in panel node.
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>

Reviewed-by: Andi Shyti <[email protected]>

Andi

2017-03-06 04:57:41

by Andi Shyti

[permalink] [raw]
Subject: Re: [PATCH v4 3/5] drm/exynos: dsi: Fix the parse_dt function

Hi Hoegeun,

On Mon, Mar 06, 2017 at 01:42:21PM +0900, Hoegeun Kwon wrote:
> The dsi + panel is a parental relationship, so OF grpah is not needed.
> Therefore, the current dsi_parse_dt function will throw an error,
> because there is no linked OF graph for case such as fimd + dsi +
> panel. So this patch parse the Pll, burst and esc clock frequency
> properties in dsi_parse_dt and modified to create a bridge_node only
> if there is an OF graph associated with dsi.
> So I think the ABI breakage is needed.
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>

Reviewed-by: Andi Shyti <[email protected]>

Andi

2017-03-06 05:02:07

by Andi Shyti

[permalink] [raw]
Subject: Re: [PATCH v4 4/5] arm64: dts: exynos: Remove the OF graph from DSI node

Hi Hoegeun,

On Mon, Mar 06, 2017 at 01:42:22PM +0900, Hoegeun Kwon wrote:
> The OF graph is not needed because the panel is a child of dsi. Remove
> the ports node in DSI node.
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>

Reviewed-by: Andi Shyti <[email protected]>

Andi

2017-03-06 05:04:33

by Andi Shyti

[permalink] [raw]
Subject: Re: [PATCH v4 2/5] arm: dts: Add the burst and esc clock frequency properties to DSI node

Hi Hoegeun,

On Mon, Mar 06, 2017 at 01:42:20PM +0900, Hoegeun Kwon wrote:
> The OF graph is not needed because the panel is a child of dsi. Add
> the burst and esc clock frequency properties to the parent (DSI node).
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>

Reviewed-by: Andi Shyti <[email protected]>

Andi

2017-03-06 04:57:40

by Hoegeun Kwon

[permalink] [raw]
Subject: Re: [PATCH v4 1/5] arm64: dts: exynos: Add the burst and esc clock frequency properties to DSI node

On 03/06/2017 01:49 PM, Andi Shyti wrote:
> Hi Hoegeun,
>
> On Mon, Mar 06, 2017 at 01:42:19PM +0900, Hoegeun Kwon wrote:
>> The OF graph is not needed because the panel is a child of dsi. Add
>> the burst and esc clock frequency properties to the parent (DSI node).
>>
>> Signed-off-by: Hoegeun Kwon <[email protected]>
>> Reviewed-by: Andrzej Hajda <[email protected]>
> you forgot to put me in Cc and add my
>
> Reviewed-by: Andi Shyti <[email protected]>

Sorry Andi, I mistake... :(
Thanks for all your review.

Best Regards,
Hoegeun

>
> Andi
>
>

2017-03-06 08:56:49

by Lothar Waßmann

[permalink] [raw]
Subject: Re: [PATCH v4 2/5] arm: dts: Add the burst and esc clock frequency properties to DSI node

Hi,

On Mon, 06 Mar 2017 13:42:20 +0900 Hoegeun Kwon wrote:
> The OF graph is not needed because the panel is a child of dsi. Add
>
This is obviously from your patch #5 and doesn't make sense in this
context.

> the burst and esc clock frequency properties to the parent (DSI node).
>
> Signed-off-by: Hoegeun Kwon <[email protected]>
> Reviewed-by: Andrzej Hajda <[email protected]>
> ---
> arch/arm/boot/dts/exynos3250-rinato.dts | 2 ++
> arch/arm/boot/dts/exynos4210-trats.dts | 2 ++
> arch/arm/boot/dts/exynos4412-trats2.dts | 2 ++
> 3 files changed, 6 insertions(+)
>
> diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
> index 548413e..c9f191c 100644
> --- a/arch/arm/boot/dts/exynos3250-rinato.dts
> +++ b/arch/arm/boot/dts/exynos3250-rinato.dts
> @@ -215,6 +215,8 @@
> &dsi_0 {
> vddcore-supply = <&ldo6_reg>;
> vddio-supply = <&ldo6_reg>;
> + samsung,burst-clock-frequency = <250000000>;
> + samsung,esc-clock-frequency = <20000000>;
> samsung,pll-clock-frequency = <24000000>;
> status = "okay";
>
> diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
> index 0ca1b4d..1743ca8 100644
> --- a/arch/arm/boot/dts/exynos4210-trats.dts
> +++ b/arch/arm/boot/dts/exynos4210-trats.dts
> @@ -197,6 +197,8 @@
> &dsi_0 {
> vddcore-supply = <&vusb_reg>;
> vddio-supply = <&vmipi_reg>;
> + samsung,burst-clock-frequency = <500000000>;
> + samsung,esc-clock-frequency = <20000000>;
> samsung,pll-clock-frequency = <24000000>;
> status = "okay";
>
> diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
> index 41ecd6d..82221a0 100644
> --- a/arch/arm/boot/dts/exynos4412-trats2.dts
> +++ b/arch/arm/boot/dts/exynos4412-trats2.dts
> @@ -385,6 +385,8 @@
> &dsi_0 {
> vddcore-supply = <&ldo8_reg>;
> vddio-supply = <&ldo10_reg>;
> + samsung,burst-clock-frequency = <500000000>;
> + samsung,esc-clock-frequency = <20000000>;
> samsung,pll-clock-frequency = <24000000>;
> status = "okay";
>


Lothar Waßmann