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

Inki Dae daeinki at gmail.com
Sat Nov 21 01:38:05 PST 2015


Hi Javier,

2015-11-21 1:44 GMT+09:00 Javier Martinez Canillas <javier at osg.samsung.com>:
> 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

Then, the DT is really incorrect. As you mentioned, if the Exynos5800 Peach PI
board doesn't use eDP, then the dp node __should be removed__ from
exynos5800-peach-pit.dts.

>From a common-sense standpoint, there is no any reason to build
and probe dp driver if the board doesn't use dp hardware.

> 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:

It's really not good. This would make it more complex. The best
solution is just to
remove the dt node from the device tree file.

Thanks,
Inki Dae

>
> 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
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list