From patchwork Fri Nov 20 16:44:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Javier Martinez Canillas X-Patchwork-Id: 7670011 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id ACDA6BF90C for ; Fri, 20 Nov 2015 16:44:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id A842320384 for ; Fri, 20 Nov 2015 16:44:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 065F320460 for ; Fri, 20 Nov 2015 16:44:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161981AbbKTQoo (ORCPT ); Fri, 20 Nov 2015 11:44:44 -0500 Received: from lists.s-osg.org ([54.187.51.154]:38105 "EHLO lists.s-osg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161900AbbKTQon (ORCPT ); Fri, 20 Nov 2015 11:44:43 -0500 Received: from [10.203.15.114] (unknown [200.3.249.195]) by lists.s-osg.org (Postfix) with ESMTPSA id DBD83462A0; Fri, 20 Nov 2015 08:44:40 -0800 (PST) Subject: Re: [PATCH v2 0/7] drm/exynos: add pm runtime support To: Inki Dae , dri-devel@lists.freedesktop.org References: <1446547629-12521-1-git-send-email-inki.dae@samsung.com> <564DE209.8030004@osg.samsung.com> <564DE2DB.6050608@osg.samsung.com> <564DEFEC.50802@osg.samsung.com> <564EFD13.7040409@samsung.com> <564F0053.6020401@samsung.com> From: Javier Martinez Canillas X-Enigmail-Draft-Status: N1110 Cc: airlied@linux.ie, linux-samsung-soc@vger.kernel.org, Kevin Hilman , Tyler Baker , Gustavo Padovan Message-ID: <564F4DF5.2010301@osg.samsung.com> Date: Fri, 20 Nov 2015 13:44:37 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <564F0053.6020401@samsung.com> Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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@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@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: Best regards, 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@0 { + dp_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; }; &fimd {