Linux-Rockchip Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Paul <seanpaul@chromium.org>
To: Andrzej Hajda <a.hajda@samsung.com>
Cc: zain wang <wzz@rock-chips.com>, Lin Huang <hl@rock-chips.com>,
	Tomeu Vizoso <tomeu.vizoso@collabora.com>,
	Douglas Anderson <dianders@chromium.org>,
	dri-devel@lists.freedesktop.org,
	linux-rockchip@lists.infradead.org,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Yakir Yang <ykk@rock-chips.com>
Subject: Re: [PATCH 12/41] drm/bridge: analogix_dp: add fast link train for eDP
Date: Tue, 21 Mar 2017 16:37:28 -0400	[thread overview]
Message-ID: <20170321203728.GL19389@art_vandelay> (raw)
In-Reply-To: <3a7cc255-084f-7367-e9de-831a9bc96191@samsung.com>

On Thu, Mar 16, 2017 at 03:14:28PM +0100, Andrzej Hajda wrote:
> On 10.03.2017 05:32, Sean Paul wrote:
> > From: zain wang <wzz@rock-chips.com>
> >
> > We would meet a short black screen when exit PSR with the full link
> > training, In this case, we should use fast link train instead of full
> > link training.
> >
> > Signed-off-by: zain wang <wzz@rock-chips.com>
> > Signed-off-by: Sean Paul <seanpaul@chromium.org>
> > ---
> >  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 142 ++++++++++++++++-----
> >  drivers/gpu/drm/bridge/analogix/analogix_dp_core.h |   3 +
> >  2 files changed, 114 insertions(+), 31 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > index 64d94a34874d..5bc151b0995b 100644
> > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > @@ -10,17 +10,18 @@
> >  * option) any later version.
> >  */
> >  
> > -#include <linux/module.h>
> > -#include <linux/platform_device.h>
> > -#include <linux/err.h>
> >  #include <linux/clk.h>
> > -#include <linux/io.h>
> > +#include <linux/component.h>
> > +#include <linux/err.h>
> > +#include <linux/gpio.h>
> >  #include <linux/interrupt.h>
> > +#include <linux/io.h>
> > +#include <linux/iopoll.h>
> > +#include <linux/module.h>
> >  #include <linux/of.h>
> >  #include <linux/of_gpio.h>
> > -#include <linux/gpio.h>
> > -#include <linux/component.h>
> >  #include <linux/phy/phy.h>
> > +#include <linux/platform_device.h>
> >  
> >  #include <drm/drmP.h>
> >  #include <drm/drm_atomic_helper.h>
> > @@ -35,6 +36,8 @@
> >  
> >  #define to_dp(nm)	container_of(nm, struct analogix_dp_device, nm)
> >  
> > +static const bool verify_fast_training;
> > +
> 
> Quite odd debug sentinel, I am not sure if it is good practice to use
> such construct.

IIRC, they originally had a #define and then used #ifdef below to gate the
verification. My concern with that was the code would rot if it wasn't compiled.

<snip>

> > @@ -853,10 +933,10 @@ static void analogix_dp_commit(struct analogix_dp_device *dp)
> >  			DRM_ERROR("failed to disable the panel\n");
> >  	}
> >  
> > -	ret = analogix_dp_set_link_train(dp, dp->video_info.max_lane_count,
> > -					 dp->video_info.max_link_rate);
> > +	ret = readx_poll_timeout(analogix_dp_train_link, dp, ret, !ret, 100,
> > +				 DP_TIMEOUT_TRAINING_US * 5);
> >  	if (ret) {
> > -		dev_err(dp->dev, "unable to do link train\n");
> > +		dev_err(dp->dev, "unable to do link train, ret=%d\n", ret);
> 
> And here we have ", ret=%d\n". Maybe it would be good to make it
> consistent across whole driver.

Meh. I don't think it's worth bikeshedding over commas in error messages. I'm
just happy there are error checks/messages.


> Another issue with consistency in DRM_DEV_ERROR vs dev_err.

Yeah, that's annoying.

Sean

> 
> Regards
> Andrzej
> 
> >  		return;
> >  	}
> >  
> > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h
> > index e135a42cb19e..920607d7eb3e 100644
> > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h
> > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.h
> > @@ -20,6 +20,8 @@
> >  #define MAX_CR_LOOP 5
> >  #define MAX_EQ_LOOP 5
> >  
> > +/* Training takes 22ms if AUX channel comm fails. Use this as retry interval */
> > +#define DP_TIMEOUT_TRAINING_US			22000
> >  #define DP_TIMEOUT_PSR_LOOP_MS			300
> >  
> >  /* DP_MAX_LANE_COUNT */
> > @@ -171,6 +173,7 @@ struct analogix_dp_device {
> >  	int			hpd_gpio;
> >  	bool                    force_hpd;
> >  	bool			psr_enable;
> > +	bool			fast_train_support;
> >  
> >  	struct mutex		panel_lock;
> >  	bool			panel_is_modeset;
> 

-- 
Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-03-21 20:37 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-10  4:32 [PATCH 00/41] Chromebook Plus (aka kevin) kernel patches Sean Paul
2017-03-10  4:32 ` [PATCH 01/41] drm/panel: simple: Change mode for Sharp lq123p1jx31 Sean Paul
2017-03-20 13:59   ` Thierry Reding
2017-03-20 16:37     ` Doug Anderson
2017-03-20 20:01       ` Stéphane Marchesin
2017-03-20 20:05         ` Doug Anderson
2017-03-10  4:32 ` [PATCH 03/41] drm/rockchip: support prime import sg table Sean Paul
2017-12-12 12:32   ` Heiko Stuebner
2017-03-10  4:32 ` [PATCH 04/41] drm/rockchip: Respect page offset for PRIME mmap calls Sean Paul
2017-12-12 16:58   ` Heiko Stuebner
2017-03-10  4:32 ` [PATCH 05/41] drm/bridge: analogix_dp: set psr activate/deactivate when enable/disable bridge Sean Paul
2017-03-10  4:32 ` [PATCH 07/41] drm/rockchip: Don't use atomic constructs for psr Sean Paul
2017-03-10  4:32 ` [PATCH 09/41] drm/rockchip: Remove analogix psr worker Sean Paul
2017-03-10  4:32 ` [PATCH 10/41] drm/bridge: analogix_dp: Don't change psr while bridge is disabled Sean Paul
2017-03-16 13:40   ` Andrzej Hajda
2017-03-21 19:58     ` Sean Paul
2017-03-22  8:36       ` Andrzej Hajda
2017-03-22 15:19         ` Sean Paul
2017-03-23  9:04           ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 11/41] drm/rockchip: add mutex vop lock Sean Paul
2017-03-10  4:32 ` [PATCH 13/41] drm/rockchip: pre dither down when output bpc is 8bit Sean Paul
2017-03-10  4:32 ` [PATCH 14/41] drm/rockchip: Only wait for panel ACK on PSR entry Sean Paul
     [not found] ` <20170310043305.17216-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2017-03-10  4:32   ` [PATCH 02/41] drm/rockchip: Get rid of some unnecessary code Sean Paul
2017-12-12 12:25     ` Heiko Stuebner
2017-03-10  4:32   ` [PATCH 06/41] drm/bridge: analogix_dp: Don't power bridge in analogix_dp_bind Sean Paul
2017-03-16 12:31     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 08/41] drm/bridge: analogix_dp: detect Sink PSR state after configuring the PSR Sean Paul
2017-03-16 13:28     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 12/41] drm/bridge: analogix_dp: add fast link train for eDP Sean Paul
2017-03-16 14:14     ` Andrzej Hajda
2017-03-21 20:37       ` Sean Paul [this message]
2017-03-22  8:07         ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 15/41] drm/bridge: analogix_dp: Move enable video into config_video() Sean Paul
2017-03-16 14:26     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 16/41] drm/bridge: analogix_dp: Check AUX_EN status when doing AUX transfer Sean Paul
2017-03-16 14:28     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 17/41] drm/bridge: analogix_dp: Don't use fast link training when panel just powered up Sean Paul
2017-03-16 14:34     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 18/41] drm/bridge: analogix_dp: Retry bridge enable when it failed Sean Paul
2017-03-16 14:45     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 19/41] drm/bridge: analogix_dp: Wait for HPD signal before configuring link Sean Paul
2017-03-16 14:51     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 21/41] drm/bridge: analogix_dp: Ensure edp is disabled when shutting down the panel Sean Paul
2017-03-22  8:29     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 22/41] drm/bridge: analogix_dp: Extend hpd check time to 100ms Sean Paul
2017-03-22  8:32     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 23/41] drm/bridge: analogix_dp: Fix incorrect usage of enhanced mode Sean Paul
2017-03-22  8:46     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 24/41] drm/bridge: analogix_dp: Check dpcd write/read status Sean Paul
2017-03-22  9:00     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 25/41] drm/bridge: analogix_dp: Fix AUX_PD bit for Rockchip Sean Paul
2017-03-22  9:09     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 26/41] drm/bridge: analogix_dp: Reset aux channel if an error occurred Sean Paul
2017-03-22  9:14     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 35/41] drm/rockchip: analogix_dp: Fix invalid implementation of unbind Sean Paul
2017-03-10  4:32   ` [PATCH 36/41] drm/bridge: analogix_dp: Add analogix_dp_shutdown Sean Paul
2017-03-10  4:32   ` [PATCH 37/41] drm/rockchip: analogix_dp: Wire the shutdown callback to disable PSR Sean Paul
2017-03-10  4:32   ` [PATCH 38/41] drm/bridge: analogix_dp: Reorder plat_data->power_off to happen sooner Sean Paul
2017-03-22 10:34     ` Andrzej Hajda
2017-03-10  4:32   ` [PATCH 41/41] drm/bridge: analogix_dp: Properly disable aux chan retries on rockchip Sean Paul
2017-03-22 10:57     ` Andrzej Hajda
2017-03-22 15:59       ` Doug Anderson
2017-03-28 15:40         ` Javier Martinez Canillas
2017-03-10  4:32 ` [PATCH 20/41] drm/bridge: analogix_dp: Set PD_INC_BG first when powering up edp phy Sean Paul
2017-03-16 14:54   ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 27/41] drm/rockchip: Restore psr->state when enable/disable psr failed Sean Paul
2017-03-10  4:32 ` [PATCH 28/41] drm/bridge: analogix_dp: Don't use ANALOGIX_DP_PLL_CTL to control pll Sean Paul
2017-03-22  9:17   ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 29/41] drm/bridge: analogix_dp: Fix timeout of video streamclk config Sean Paul
2017-03-22  9:24   ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 30/41] drm/bridge: analogix_dp: Fix incorrect operations with register ANALOGIX_DP_FUNC_EN_1 Sean Paul
2017-03-22  9:29   ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 31/41] drm/bridge: analogix_dp: Move fast link training detect to set_bridge Sean Paul
2017-03-22 10:25   ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 32/41] drm/rockchip: Flush PSR before committing modeset disables/enables Sean Paul
2017-03-10  4:32 ` [PATCH 33/41] drm/rockchip: Disable VOP windows when PSR is active Sean Paul
2017-03-10  4:32 ` [PATCH 34/41] drm/bridge: analogix_dp: Allow master driver to cleanup in unbind Sean Paul
2017-03-10  7:09   ` Tomasz Figa
2017-03-10 14:24     ` Sean Paul
2017-03-10  4:32 ` [PATCH 39/41] drm/bridge: analogix_dp: Split the platform-specific poweron in two parts Sean Paul
2017-03-22 10:42   ` Andrzej Hajda
2017-03-10  4:32 ` [PATCH 40/41] drm/bridge: analogix_dp: Properly log AUX CH errors Sean Paul
2017-03-22 10:47   ` Andrzej Hajda
2017-03-14 20:43 ` [PATCH 00/41] Chromebook Plus (aka kevin) kernel patches Sean Paul
2017-03-16 16:45   ` Enric Balletbo Serra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170321203728.GL19389@art_vandelay \
    --to=seanpaul@chromium.org \
    --cc=a.hajda@samsung.com \
    --cc=dianders@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hl@rock-chips.com \
    --cc=krzk@kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=tomeu.vizoso@collabora.com \
    --cc=wzz@rock-chips.com \
    --cc=ykk@rock-chips.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox