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 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 (7): arm64: dts: exynos: Add the burst and esc clock frequency properties for exynos5433 dts arm: dts: Add the burst and esc clock frequency properties for exynos3250 dts arm: dts: Add the burst and esc clock frequency properties for exynos4412 dts arm: dts: Add the burst and esc clock frequency properties for exynos4210 dts 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(-)
The OF graph is not needed because the panel is a child of dsi. So added the burst and esc clock frequency properties to the parent (DSI node), taking into account the bisectability problem so that remove the OF graph from DSI node.
Signed-off-by: Hoegeun Kwon hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- 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>;
The OF graph is not needed because the panel is a child of dsi. So added the burst and esc clock frequency properties to the parent (DSI node), taking into account the bisectability problem so that remove the OF graph from DSI node.
Signed-off-by: Hoegeun Kwon hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- arch/arm/boot/dts/exynos3250-rinato.dts | 2 ++ 1 file changed, 2 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";
Hi Hoegeun,
On Thu, Mar 02, 2017 at 07:20:14PM +0900, Hoegeun Kwon wrote:
The OF graph is not needed because the panel is a child of dsi. So added the burst and esc clock frequency properties to the parent (DSI node), taking into account the bisectability problem so that remove the OF graph from DSI node.
nitpick:
1. bisectability is not a problem (and for bisectability you should not mention it in the commit log, you would confuse bisecting people)
2. you should use the imperative form, not "added the burst... " but "add the burst..."
Same for the other patches.
Andi
The OF graph is not needed because the panel is a child of dsi. So added the burst and esc clock frequency properties to the parent (DSI node), taking into account the bisectability problem so that remove the OF graph from DSI node.
Signed-off-by: Hoegeun Kwon hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- arch/arm/boot/dts/exynos4412-trats2.dts | 2 ++ 1 file changed, 2 insertions(+)
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";
The OF graph is not needed because the panel is a child of dsi. So added the burst and esc clock frequency properties to the parent (DSI node), taking into account the bisectability problem so that remove the OF graph from DSI node.
Signed-off-by: Hoegeun Kwon hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- arch/arm/boot/dts/exynos4210-trats.dts | 2 ++ 1 file changed, 2 insertions(+)
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";
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 hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- 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,
The OF graph is not needed because the panel is a child of dsi. So removed the ports node in DSI node.
Signed-off-by: Hoegeun Kwon hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- 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 {
The OF graph is not needed because the panel is a child of dsi. So removed the ports node in DSI node, and port node in panel node.
Signed-off-by: Hoegeun Kwon hoegeun.kwon@samsung.com Reviewed-by: Andrzej Hajda a.hajda@samsung.com --- 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>; - }; - }; }; };
Hi Hoegeun,
Hoegeun Kwon (7): arm64: dts: exynos: Add the burst and esc clock frequency properties for exynos5433 dts arm: dts: Add the burst and esc clock frequency properties for exynos3250 dts arm: dts: Add the burst and esc clock frequency properties for exynos4412 dts arm: dts: Add the burst and esc clock frequency properties for exynos4210 dts 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
for all of them:
Reviewed-by: Andi Shyti andi.shyti@samsung.com
although I would have squashed patch 2, 3 and 4, but no need to resend, unless someone else agrees.
Andi
On Fri, Mar 03, 2017 at 09:22:06AM +0900, Andi Shyti wrote:
Hi Hoegeun,
Hoegeun Kwon (7): arm64: dts: exynos: Add the burst and esc clock frequency properties for exynos5433 dts arm: dts: Add the burst and esc clock frequency properties for exynos3250 dts arm: dts: Add the burst and esc clock frequency properties for exynos4412 dts arm: dts: Add the burst and esc clock frequency properties for exynos4210 dts 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
for all of them:
Reviewed-by: Andi Shyti andi.shyti@samsung.com
Andi,
Thanks for review. It is much welcomed.
I am trying not loose such review tags but it might happen because: 1. Patchwork does not store them, 2. Mail does not sit in inbox for long (inbox zero), so if it is possible the most convenient for me is to reply with review to each email.
although I would have squashed patch 2, 3 and 4, but no need to resend, unless someone else agrees.
Yes, these are small additions to the same arch so they could be indeed squashed. I don't mind keeping them separated though.
Best regards, Krzysztof
dri-devel@lists.freedesktop.org