[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-07 Thread Javier Martinez Canillas
[adding Krzysztof and Kukjin to cc list]

Hello Inki,

On 12/06/2015 01:25 PM, Inki Dae wrote:
> Hi Javier,
> 
> 2015-12-03 22:05 GMT+09:00 Javier Martinez Canillas  osg.samsung.com>:
>>
>> Hello Inki,
>>
>> On 12/02/2015 11:11 PM, Inki Dae wrote:
>>> Hi Javier,
>>>
>>> 2015년 12월 03일 00:04에 Javier Martinez Canillas 이(가) 쓴 글:
 Hello Inki,

 On 12/02/2015 08:57 AM, Inki Dae wrote:
> This patch adds of_graph dt binding support for panel device
> and also keeps the backward compatibility.
>

 You have to also update the DT binding doc which seems to be
 outdated already:

 Documentation/devicetree/bindings/display/exynos/exynos_dp.txt
>>>
>>> Right. It should be updated.
>>>
>>
>> Great, I see you already posted that.
>>

> i.e.,
> The dts file for Exynos5800 based peach pi board
> has a panel property so we need to keep the backward compatibility.
>

 How did you test this patch?
>>>
>>> I thought you will test it and give me tested-by because you commented like 
>>> below,
>>> " Assuming you can make a distinction if the endpoint is a panel or a 
>>> bridge,
>>> then yes, I agree with the idea of the patch. Please feel free to cc me if
>>> you post such a patch and I'll gladly test it on my Exynos5800 Peach Pi."
>>>
>>> That is why I cced you. I really have no any Exynos5800 Peach Pi board.
>>>
>>
>> Yes, but if you didn't test a patch, then it should be marked with a RFT
>> prefix in the subject line or at least mention that needs testing since
>> you lack the HW to test. I've no way to know if you have another board
>> with a similar design :)
>>
>> But what I meant is how the patch is supposed to be tested since there
>> ins't a change in the Exynos5800 Peach Pi DTS? We can of course test
>> that doesn't break backward compatibility but we don't have a way to
>> test the actual change.
>>
>> So I tested with the patch following patch [0] and things are working
>> correctly. Please include that patch in your series.
> 
> Will pick it up. And  I commented on below your patch.
>

Ok, you need an ack from Krzysztof / Kukjin before picking the patch
though and cc them if you are planning to repost the whole series.

Another option is to wait until your Exynos DRM patches hit mainline
and then the DTS change can be posted separately.

>>
>> I've some comments on your patch though but I'll comment on your lastest
>> version.
>>
>>> Thanks,
>>> Inki Dae
>>>

 Best regards,

>>
>> Best regards,
>> --
>> Javier Martinez Canillas
>> Open Source Group
>> Samsung Research America
>>
>> [0]:
>> From 644bab7949ac17a8d42ca0cf36cd55d61bc88928 Mon Sep 17 00:00:00 2001
>> From: Javier Martinez Canillas 
>> Date: Thu, 3 Dec 2015 09:32:17 -0300
>> Subject: [PATCH 1/1] ARM: dts: Use OF graph for DP to panel connection in
>>  exynos5800-peach-pi
>>
>> The DT binding for the Exynos DRM Display Port (DP) driver isn't consistent
>> since it uses a phandle to describe the connection between the DP port and
>> the display panel but uses the OF graph ports and endpoints to describe the
>> connection betwen the DP port, a bridge chip and the panel.
>>
>> The Exynos DP driver and the DT binding have been changed to allow also to
>> describe the DP port to panel connection using ports / endpoints (OF graph)
>> so this patch changes the Exynos5800 Peach Pi DT to make it consistent with
>> the Exynos5420 Peach Pit that has a eDP to LVDS chip and uses OF graph too.
>>
>> Signed-off-by: Javier Martinez Canillas 
>> ---
>>  arch/arm/boot/dts/exynos5800-peach-pi.dts | 15 ++-
>>  1 file changed, 14 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts 
>> b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> index 7b018e451880..9c6fd7314ee0 100644
>> --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
>> @@ -122,6 +122,12 @@
>> compatible = "auo,b133htn01";
>> power-supply = <&tps65090_fet6>;
>> backlight = <&backlight>;
>> +
>> +   port {
>> +   panel_in: endpoint {
>> +   remote-endpoint = <&dp_out>;
>> +   };
>> +   };
>> };
>>
>> mmc1_pwrseq: mmc1_pwrseq {
>> @@ -148,7 +154,14 @@
>> samsung,link-rate = <0x0a>;
>> samsung,lane-count = <2>;
>> samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
>> -   panel = <&panel>;
>> +
>> +   ports {
>> +   port at 0 {
> 
> As Rob commented before, I will pick it up removing @0 if you are ok.
>

Ok, it is true that there isn't an #address-cells, #size-cells and reg
properties since there is a single port so I guess the @0 is arbitrary
here so it doesn't represent a proper unit-address and can be removed.

> Thanks,
> Inki Dae
> 
>> +   dp_out: endpoint {
>> +   remote-endpoint = <

[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-07 Thread Inki Dae
Hi Javier,

2015-12-03 22:05 GMT+09:00 Javier Martinez Canillas :
>
> Hello Inki,
>
> On 12/02/2015 11:11 PM, Inki Dae wrote:
>> Hi Javier,
>>
>> 2015년 12월 03일 00:04에 Javier Martinez Canillas 이(가) 쓴 글:
>>> Hello Inki,
>>>
>>> On 12/02/2015 08:57 AM, Inki Dae wrote:
 This patch adds of_graph dt binding support for panel device
 and also keeps the backward compatibility.

>>>
>>> You have to also update the DT binding doc which seems to be
>>> outdated already:
>>>
>>> Documentation/devicetree/bindings/display/exynos/exynos_dp.txt
>>
>> Right. It should be updated.
>>
>
> Great, I see you already posted that.
>
>>>
 i.e.,
 The dts file for Exynos5800 based peach pi board
 has a panel property so we need to keep the backward compatibility.

>>>
>>> How did you test this patch?
>>
>> I thought you will test it and give me tested-by because you commented like 
>> below,
>> " Assuming you can make a distinction if the endpoint is a panel or a bridge,
>> then yes, I agree with the idea of the patch. Please feel free to cc me if
>> you post such a patch and I'll gladly test it on my Exynos5800 Peach Pi."
>>
>> That is why I cced you. I really have no any Exynos5800 Peach Pi board.
>>
>
> Yes, but if you didn't test a patch, then it should be marked with a RFT
> prefix in the subject line or at least mention that needs testing since
> you lack the HW to test. I've no way to know if you have another board
> with a similar design :)
>
> But what I meant is how the patch is supposed to be tested since there
> ins't a change in the Exynos5800 Peach Pi DTS? We can of course test
> that doesn't break backward compatibility but we don't have a way to
> test the actual change.
>
> So I tested with the patch following patch [0] and things are working
> correctly. Please include that patch in your series.

Will pick it up. And  I commented on below your patch.

>
> I've some comments on your patch though but I'll comment on your lastest
> version.
>
>> Thanks,
>> Inki Dae
>>
>>>
>>> Best regards,
>>>
>
> Best regards,
> --
> Javier Martinez Canillas
> Open Source Group
> Samsung Research America
>
> [0]:
> From 644bab7949ac17a8d42ca0cf36cd55d61bc88928 Mon Sep 17 00:00:00 2001
> From: Javier Martinez Canillas 
> Date: Thu, 3 Dec 2015 09:32:17 -0300
> Subject: [PATCH 1/1] ARM: dts: Use OF graph for DP to panel connection in
>  exynos5800-peach-pi
>
> The DT binding for the Exynos DRM Display Port (DP) driver isn't consistent
> since it uses a phandle to describe the connection between the DP port and
> the display panel but uses the OF graph ports and endpoints to describe the
> connection betwen the DP port, a bridge chip and the panel.
>
> The Exynos DP driver and the DT binding have been changed to allow also to
> describe the DP port to panel connection using ports / endpoints (OF graph)
> so this patch changes the Exynos5800 Peach Pi DT to make it consistent with
> the Exynos5420 Peach Pit that has a eDP to LVDS chip and uses OF graph too.
>
> Signed-off-by: Javier Martinez Canillas 
> ---
>  arch/arm/boot/dts/exynos5800-peach-pi.dts | 15 ++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts 
> b/arch/arm/boot/dts/exynos5800-peach-pi.dts
> index 7b018e451880..9c6fd7314ee0 100644
> --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
> +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
> @@ -122,6 +122,12 @@
> compatible = "auo,b133htn01";
> power-supply = <&tps65090_fet6>;
> backlight = <&backlight>;
> +
> +   port {
> +   panel_in: endpoint {
> +   remote-endpoint = <&dp_out>;
> +   };
> +   };
> };
>
> mmc1_pwrseq: mmc1_pwrseq {
> @@ -148,7 +154,14 @@
> samsung,link-rate = <0x0a>;
> samsung,lane-count = <2>;
> samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
> -   panel = <&panel>;
> +
> +   ports {
> +   port at 0 {

As Rob commented before, I will pick it up removing @0 if you are ok.

Thanks,
Inki Dae

> +   dp_out: endpoint {
> +   remote-endpoint = <&panel_in>;
> +   };
> +   };
> +   };
>  };
>
>  &fimd {
> --
> 2.4.3
>
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-03 Thread Rob Herring
On Wed, Dec 2, 2015 at 5:57 AM, Inki Dae  wrote:
> This patch adds of_graph dt binding support for panel device
> and also keeps the backward compatibility.
>
> i.e.,
> The dts file for Exynos5800 based peach pi board
> has a panel property so we need to keep the backward compatibility.
>
> Changelog v2:
> - return -EINVAL if getting a port node failed.
>
> Signed-off-by: Inki Dae 
> ---
>  drivers/gpu/drm/exynos/exynos_dp_core.c | 21 +++--
>  1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
> b/drivers/gpu/drm/exynos/exynos_dp_core.c
> index 94f02a0..0b53045 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp_core.c
> +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
> @@ -1392,7 +1392,7 @@ static const struct component_ops exynos_dp_ops = {
>  static int exynos_dp_probe(struct platform_device *pdev)
>  {
> struct device *dev = &pdev->dev;
> -   struct device_node *panel_node, *bridge_node, *endpoint;
> +   struct device_node *panel_node = NULL, *bridge_node, *endpoint = NULL;
> struct exynos_dp_device *dp;
> int ret;
>
> @@ -1403,15 +1403,32 @@ static int exynos_dp_probe(struct platform_device 
> *pdev)
>
> platform_set_drvdata(pdev, dp);
>
> +   /* This is for the backward compatibility. */
> panel_node = of_parse_phandle(dev->of_node, "panel", 0);
> if (panel_node) {
> dp->panel = of_drm_find_panel(panel_node);
> of_node_put(panel_node);
> if (!dp->panel)
> return -EPROBE_DEFER;
> +   } else {
> +   endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> +   if (endpoint) {
> +   panel_node = 
> of_graph_get_remote_port_parent(endpoint);
> +   if (panel_node) {
> +   dp->panel = of_drm_find_panel(panel_node);
> +   of_node_put(panel_node);
> +   if (!dp->panel)
> +   return -EPROBE_DEFER;
> +   } else {
> +   DRM_ERROR("no port node for panel device.\n");
> +   return -EINVAL;
> +   }
> +   }

This should be a fairly common sequence, so please make it one. Only
which port is the panel should vary.

Rob


[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-03 Thread Inki Dae

It seems that below patch should be modifed for only one of two outbound nodes 
- panel
and bridge - to be bound because in case of using bridge device, the bridge 
driver will
bind the panel. I will fix and post it again.

Thanks,
Inki Dae

2015년 12월 02일 20:57에 Inki Dae 이(가) 쓴 글:
> This patch adds of_graph dt binding support for panel device
> and also keeps the backward compatibility.
> 
> i.e.,
> The dts file for Exynos5800 based peach pi board
> has a panel property so we need to keep the backward compatibility.
> 
> Changelog v2:
> - return -EINVAL if getting a port node failed.
> 
> Signed-off-by: Inki Dae 
> ---
>  drivers/gpu/drm/exynos/exynos_dp_core.c | 21 +++--
>  1 file changed, 19 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
> b/drivers/gpu/drm/exynos/exynos_dp_core.c
> index 94f02a0..0b53045 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp_core.c
> +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
> @@ -1392,7 +1392,7 @@ static const struct component_ops exynos_dp_ops = {
>  static int exynos_dp_probe(struct platform_device *pdev)
>  {
>   struct device *dev = &pdev->dev;
> - struct device_node *panel_node, *bridge_node, *endpoint;
> + struct device_node *panel_node = NULL, *bridge_node, *endpoint = NULL;
>   struct exynos_dp_device *dp;
>   int ret;
>  
> @@ -1403,15 +1403,32 @@ static int exynos_dp_probe(struct platform_device 
> *pdev)
>  
>   platform_set_drvdata(pdev, dp);
>  
> + /* This is for the backward compatibility. */
>   panel_node = of_parse_phandle(dev->of_node, "panel", 0);
>   if (panel_node) {
>   dp->panel = of_drm_find_panel(panel_node);
>   of_node_put(panel_node);
>   if (!dp->panel)
>   return -EPROBE_DEFER;
> + } else {
> + endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> + if (endpoint) {
> + panel_node = of_graph_get_remote_port_parent(endpoint);
> + if (panel_node) {
> + dp->panel = of_drm_find_panel(panel_node);
> + of_node_put(panel_node);
> + if (!dp->panel)
> + return -EPROBE_DEFER;
> + } else {
> + DRM_ERROR("no port node for panel device.\n");
> + return -EINVAL;
> + }
> + }
>   }
>  
> - endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
> + panel_node = !endpoint ? NULL : panel_node;
> +
> + endpoint = of_graph_get_next_endpoint(dev->of_node, panel_node);
>   if (endpoint) {
>   bridge_node = of_graph_get_remote_port_parent(endpoint);
>   if (bridge_node) {
> 


[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-03 Thread Inki Dae
Hi Javier,

2015년 12월 03일 00:04에 Javier Martinez Canillas 이(가) 쓴 글:
> Hello Inki,
> 
> On 12/02/2015 08:57 AM, Inki Dae wrote:
>> This patch adds of_graph dt binding support for panel device
>> and also keeps the backward compatibility.
>>
> 
> You have to also update the DT binding doc which seems to be
> outdated already:
> 
> Documentation/devicetree/bindings/display/exynos/exynos_dp.txt

Right. It should be updated.

> 
>> i.e.,
>> The dts file for Exynos5800 based peach pi board
>> has a panel property so we need to keep the backward compatibility.
>>
> 
> How did you test this patch?

I thought you will test it and give me tested-by because you commented like 
below,
" Assuming you can make a distinction if the endpoint is a panel or a bridge,
then yes, I agree with the idea of the patch. Please feel free to cc me if
you post such a patch and I'll gladly test it on my Exynos5800 Peach Pi."

That is why I cced you. I really have no any Exynos5800 Peach Pi board.

Thanks,
Inki Dae

>  
> Best regards,
> 


[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-03 Thread Javier Martinez Canillas

Hello Inki,

On 12/02/2015 11:11 PM, Inki Dae wrote:
> Hi Javier,
> 
> 2015년 12월 03일 00:04에 Javier Martinez Canillas 이(가) 쓴 글:
>> Hello Inki,
>>
>> On 12/02/2015 08:57 AM, Inki Dae wrote:
>>> This patch adds of_graph dt binding support for panel device
>>> and also keeps the backward compatibility.
>>>
>>
>> You have to also update the DT binding doc which seems to be
>> outdated already:
>>
>> Documentation/devicetree/bindings/display/exynos/exynos_dp.txt
> 
> Right. It should be updated.
>

Great, I see you already posted that.

>>
>>> i.e.,
>>> The dts file for Exynos5800 based peach pi board
>>> has a panel property so we need to keep the backward compatibility.
>>>
>>
>> How did you test this patch?
> 
> I thought you will test it and give me tested-by because you commented like 
> below,
> " Assuming you can make a distinction if the endpoint is a panel or a bridge,
> then yes, I agree with the idea of the patch. Please feel free to cc me if
> you post such a patch and I'll gladly test it on my Exynos5800 Peach Pi."
> 
> That is why I cced you. I really have no any Exynos5800 Peach Pi board.
>

Yes, but if you didn't test a patch, then it should be marked with a RFT
prefix in the subject line or at least mention that needs testing since
you lack the HW to test. I've no way to know if you have another board
with a similar design :)

But what I meant is how the patch is supposed to be tested since there
ins't a change in the Exynos5800 Peach Pi DTS? We can of course test
that doesn't break backward compatibility but we don't have a way to
test the actual change.

So I tested with the patch following patch [0] and things are working
correctly. Please include that patch in your series.

I've some comments on your patch though but I'll comment on your lastest
version.

> Thanks,
> Inki Dae
> 
>>  
>> Best regards,
>>

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

[0]:
>From 644bab7949ac17a8d42ca0cf36cd55d61bc88928 Mon Sep 17 00:00:00 2001
From: Javier Martinez Canillas 
Date: Thu, 3 Dec 2015 09:32:17 -0300
Subject: [PATCH 1/1] ARM: dts: Use OF graph for DP to panel connection in
 exynos5800-peach-pi

The DT binding for the Exynos DRM Display Port (DP) driver isn't consistent
since it uses a phandle to describe the connection between the DP port and
the display panel but uses the OF graph ports and endpoints to describe the
connection betwen the DP port, a bridge chip and the panel.

The Exynos DP driver and the DT binding have been changed to allow also to
describe the DP port to panel connection using ports / endpoints (OF graph)
so this patch changes the Exynos5800 Peach Pi DT to make it consistent with
the Exynos5420 Peach Pit that has a eDP to LVDS chip and uses OF graph too.

Signed-off-by: Javier Martinez Canillas 
---
 arch/arm/boot/dts/exynos5800-peach-pi.dts | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts 
b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 7b018e451880..9c6fd7314ee0 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -122,6 +122,12 @@
compatible = "auo,b133htn01";
power-supply = <&tps65090_fet6>;
backlight = <&backlight>;
+
+   port {
+   panel_in: endpoint {
+   remote-endpoint = <&dp_out>;
+   };
+   };
};

mmc1_pwrseq: mmc1_pwrseq {
@@ -148,7 +154,14 @@
samsung,link-rate = <0x0a>;
samsung,lane-count = <2>;
samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
-   panel = <&panel>;
+
+   ports {
+   port at 0 {
+   dp_out: endpoint {
+   remote-endpoint = <&panel_in>;
+   };
+   };
+   };
 };

 &fimd {
-- 
2.4.3



[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-02 Thread Inki Dae
This patch adds of_graph dt binding support for panel device
and also keeps the backward compatibility.

i.e.,
The dts file for Exynos5800 based peach pi board
has a panel property so we need to keep the backward compatibility.

Changelog v2:
- return -EINVAL if getting a port node failed.

Signed-off-by: Inki Dae 
---
 drivers/gpu/drm/exynos/exynos_dp_core.c | 21 +++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c 
b/drivers/gpu/drm/exynos/exynos_dp_core.c
index 94f02a0..0b53045 100644
--- a/drivers/gpu/drm/exynos/exynos_dp_core.c
+++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
@@ -1392,7 +1392,7 @@ static const struct component_ops exynos_dp_ops = {
 static int exynos_dp_probe(struct platform_device *pdev)
 {
struct device *dev = &pdev->dev;
-   struct device_node *panel_node, *bridge_node, *endpoint;
+   struct device_node *panel_node = NULL, *bridge_node, *endpoint = NULL;
struct exynos_dp_device *dp;
int ret;

@@ -1403,15 +1403,32 @@ static int exynos_dp_probe(struct platform_device *pdev)

platform_set_drvdata(pdev, dp);

+   /* This is for the backward compatibility. */
panel_node = of_parse_phandle(dev->of_node, "panel", 0);
if (panel_node) {
dp->panel = of_drm_find_panel(panel_node);
of_node_put(panel_node);
if (!dp->panel)
return -EPROBE_DEFER;
+   } else {
+   endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
+   if (endpoint) {
+   panel_node = of_graph_get_remote_port_parent(endpoint);
+   if (panel_node) {
+   dp->panel = of_drm_find_panel(panel_node);
+   of_node_put(panel_node);
+   if (!dp->panel)
+   return -EPROBE_DEFER;
+   } else {
+   DRM_ERROR("no port node for panel device.\n");
+   return -EINVAL;
+   }
+   }
}

-   endpoint = of_graph_get_next_endpoint(dev->of_node, NULL);
+   panel_node = !endpoint ? NULL : panel_node;
+
+   endpoint = of_graph_get_next_endpoint(dev->of_node, panel_node);
if (endpoint) {
bridge_node = of_graph_get_remote_port_parent(endpoint);
if (bridge_node) {
-- 
1.9.1



[PATCH v2 1/2] drm/exynos: dp: add of_graph dt binding support for panel

2015-12-02 Thread Javier Martinez Canillas
Hello Inki,

On 12/02/2015 08:57 AM, Inki Dae wrote:
> This patch adds of_graph dt binding support for panel device
> and also keeps the backward compatibility.
>

You have to also update the DT binding doc which seems to be
outdated already:

Documentation/devicetree/bindings/display/exynos/exynos_dp.txt

> i.e.,
> The dts file for Exynos5800 based peach pi board
> has a panel property so we need to keep the backward compatibility.
>

How did you test this patch?

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America