[PATCH v2 0/7] drm/exynos: add pm runtime support

Javier Martinez Canillas javier at osg.samsung.com
Fri Nov 20 08:44:37 PST 2015


Hello Inki,

On 11/20/2015 08:13 AM, Inki Dae wrote:
> 
> 
> 2015년 11월 20일 19:59에 Inki Dae 이(가) 쓴 글:
>> Hi Javier,
>>
>> 2015년 11월 20일 00:51에 Javier Martinez Canillas 이(가) 쓴 글:
>>> On 11/19/2015 11:55 AM, Javier Martinez Canillas wrote:
>>>>>>
>>>>>
>>>>> This series causes a boot failure on at least an Exynos5800 Peach Pi
>>>>> Chromebook (tested myself) and seems to be the cause of other Exynos
>>>>> boards failing to boot: http://kernelci.org/boot/?exynos&fail
>>>>>
>>>>> [snip]
>>>>>
>>>>>>   drm/exynos: add pm_runtime to Mixer
>>>>>>   drm/exynos: add pm_runtime to FIMD
>>>>>
>>>>> I had to revert these patches in order to get the machine in a bootable
>>>>> state again, the sha1 hash for these patches in next-20151119 are:
>>>>>
>>>>> 045febd5f813 drm/exynos: add pm_runtime to FIMD
>>>
>>> On a closer look, only reverting the FIMD patch is enough
>>> to make at least the Exynos5800 Peach Pi to boot again.
>>
>> Thanks for report.
>>
>> I assume that the issue is because above patch removed 'suspended' variable
>> for checking the suspend status in runtime so I revived it.
>>
>> I'm not sure that the change could resolve the issue. Could you test it
>> with the change again? I have no Exynos5800 Peach Pi board. :(
>>
>> For this, I pushed it to below exynos-drm/for-next branch,
>> 	https://git.kernel.org/cgit/linux/kernel/git/daeinki/drm-exynos.git/commit/?h=exynos-drm/for-next&id=e84f43e2b2c3388694b0b3a58c2c4447f1fbae7c
>>
>> If the issue is resolved by the change then I will modify other patches for
>> DECON series. And if really so, there may be a corner case we missed.
> 
> Oops, I found out one error at the boot log,
> http://storage.kernelci.org/next/next-20151120/arm-multi_v7_defconfig+CONFIG_LKDTM=y/lab-collabora/boot-exynos5800-peach-pi.html
> 
> The boot log says,
> [    5.754493] vdd_ldo9: supplied by vdd_2v
> [    5.765510] of_graph_get_next_endpoint(): no port node found in /dp-controller at 145B0000
>

This message is a red herring for the reported issue, the message is also
present when the machine boots and the display is brought correctly.
 
> Seems this error is because exynos5800-peach-pit.dts file doesn't have 'ports' node in dp node.
>
> Below is dp node description of exynos5420-peach-pit.dts file.
> &dp {
> 	status = "okay";
> 	pinctrl-names = "default";
> 	pinctrl-0 = <&dp_hpd_gpio>;
> 	samsung,color-space = <0>;
> 	samsung,dynamic-range = <0>;
> 	samsung,ycbcr-coeff = <0>;
> 	samsung,color-depth = <1>;
> 	samsung,link-rate = <0x06>;
> 	samsung,lane-count = <2>;
> 	samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
> 
> 	ports {
> 		port at 0 {
> 			dp_out: endpoint {
> 				remote-endpoint = <&bridge_in>;
> 			};
> 		};
> 	};
> };
> 
> And below is for exynos5800-peash-pit.dts,
> &dp {
> 	status = "okay";
> 	pinctrl-names = "default";
> 	pinctrl-0 = <&dp_hpd_gpio>;
> 	samsung,color-space = <0>;
> 	samsung,dynamic-range = <0>;
> 	samsung,ycbcr-coeff = <0>;
> 	samsung,color-depth = <1>;
> 	samsung,link-rate = <0x0a>;
> 	samsung,lane-count = <2>;
> 	samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
> 	panel = <&panel>;
> };
> 

The difference is because the Exynos5420 Peach Pit Display Port is not
attached directly to the display panel, there is an eDP/LVDS bridge chip
in the middle (PS8622) while the Exynos5800 Peach Pi doesn't have that.

The Exynos DP driver lookups for either a panel phandle or an OF graph
endpoint that points to a bridge chip and the bridge enpoint has a port
that points to the panel.

So the DT is correct but of_graph_get_next_endpoint() always prints an
error if the port so OF graph endpoints it seems can't be optional as
used in this driver. Maybe that message should be change to debug then?

Another option is to extend the DP driver DT binding to be more generic
supporting having a port to a panel besides a bridge, so we could have
something like this for Exynos5800 Peach and be consistent in both cases:

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 {

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


More information about the dri-devel mailing list