Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752848AbcLLO7O (ORCPT ); Mon, 12 Dec 2016 09:59:14 -0500 Received: from mail-yw0-f177.google.com ([209.85.161.177]:36121 "EHLO mail-yw0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752207AbcLLO7N (ORCPT ); Mon, 12 Dec 2016 09:59:13 -0500 MIME-Version: 1.0 In-Reply-To: <1481338159-7189-1-git-send-email-wxt@rock-chips.com> References: <1481338159-7189-1-git-send-email-wxt@rock-chips.com> From: Sean Paul Date: Mon, 12 Dec 2016 09:58:49 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] drm/bridge: analogix_dp: set the DPCD600 during disabling the psr To: Caesar Wang , Archit Cc: Dave Airlie , Tomeu Vizoso , Gustavo Padovan , Daniel Vetter , dri-devel , Linux Kernel Mailing List , linux-rockchip@lists.infradead.org, Brian Norris , Heiko Stuebner Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1487 Lines: 41 On Fri, Dec 9, 2016 at 9:49 PM, Caesar Wang wrote: > Look likes, the BOE panel FW didn't ack the DPCD600 signal from the host > device, that will cause the panel hang on the startup display. > The root cause we use the fast link mode during enter and exit the psr, > this issue is gone if switching the fast link to main link mode. > Cc: Archit Taneja > Signed-off-by: Caesar Wang > --- > > drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > index 6e0447f..6a5347b 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c > @@ -133,6 +133,7 @@ int analogix_dp_disable_psr(struct device *dev) > { > struct analogix_dp_device *dp = dev_get_drvdata(dev); > struct edp_vsc_psr psr_vsc; > + int ret; > > if (!dp->psr_support) > return -EINVAL; > @@ -147,6 +148,10 @@ int analogix_dp_disable_psr(struct device *dev) > psr_vsc.DB0 = 0; > psr_vsc.DB1 = 0; > > + ret = drm_dp_dpcd_writeb(&dp->aux, DP_SET_POWER, DP_SET_POWER_D0); > + if (ret != 1) > + dev_err(dp->dev, "Failed to set DP Power0 %d\n", ret); > + > analogix_dp_send_psr_spd(dp, &psr_vsc); > return 0; > } > -- > 2.7.4 >