[v5,07/11] drm/rockchip: Check for fast link training before enabling psr

Submitted by Sean Paul on June 11, 2019, 4:08 p.m.

Details

Message ID 20190611160844.257498-8-sean@poorly.run
State New
Headers show
Series "drm: Add self refresh helpers" ( rev: 6 5 4 3 ) in DRI devel

Commit Message

Sean Paul June 11, 2019, 4:08 p.m.
From: Sean Paul <seanpaul@chromium.org>

Once we start shutting off the link during PSR, we're going to want fast
training to work. If the display doesn't support fast training, don't
enable psr.

Changes in v2:
- None
Changes in v3:
- None
Changes in v4:
- None
Changes in v5:
- None

Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190228210939.83386-3-sean@poorly.run
Link to v2: https://patchwork.freedesktop.org/patch/msgid/20190326204509.96515-2-sean@poorly.run
Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-9-sean@poorly.run
Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-8-sean@poorly.run

Cc: Zain Wang <wzz@rock-chips.com>
Cc: Tomasz Figa <tfiga@chromium.org>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index d2de98d441845..a07d19e08b803 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -1040,16 +1040,17 @@  static int analogix_dp_commit(struct analogix_dp_device *dp)
 	if (ret)
 		return ret;
 
+	/* Check whether panel supports fast training */
+	ret = analogix_dp_fast_link_train_detection(dp);
+	if (ret)
+		dp->psr_enable = false;
+
 	if (dp->psr_enable) {
 		ret = analogix_dp_enable_sink_psr(dp);
 		if (ret)
 			return ret;
 	}
 
-	/* Check whether panel supports fast training */
-	ret =  analogix_dp_fast_link_train_detection(dp);
-	if (ret)
-		dp->psr_enable = false;
 
 	return ret;
 }

Comments

On Tue, Jun 11, 2019 at 12:08:21PM -0400, Sean Paul wrote:
> From: Sean Paul <seanpaul@chromium.org>
> 
> Once we start shutting off the link during PSR, we're going to want fast
> training to work. If the display doesn't support fast training, don't
> enable psr.
> 
> Changes in v2:
> - None
> Changes in v3:
> - None
> Changes in v4:
> - None
> Changes in v5:
> - None
> 
> Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190228210939.83386-3-sean@poorly.run
> Link to v2: https://patchwork.freedesktop.org/patch/msgid/20190326204509.96515-2-sean@poorly.run
> Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-9-sean@poorly.run
> Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-8-sean@poorly.run
> 
> Cc: Zain Wang <wzz@rock-chips.com>
> Cc: Tomasz Figa <tfiga@chromium.org>
> Tested-by: Heiko Stuebner <heiko@sntech.de>

@Heiko, could you please review patches 7-11? I'm worried they're going to start
to rot and the helpers have already landed in Linus' tree.

Thanks,

Sean

> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> ---
>  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> index d2de98d441845..a07d19e08b803 100644
> --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> @@ -1040,16 +1040,17 @@ static int analogix_dp_commit(struct analogix_dp_device *dp)
>  	if (ret)
>  		return ret;
>  
> +	/* Check whether panel supports fast training */
> +	ret = analogix_dp_fast_link_train_detection(dp);
> +	if (ret)
> +		dp->psr_enable = false;
> +
>  	if (dp->psr_enable) {
>  		ret = analogix_dp_enable_sink_psr(dp);
>  		if (ret)
>  			return ret;
>  	}
>  
> -	/* Check whether panel supports fast training */
> -	ret =  analogix_dp_fast_link_train_detection(dp);
> -	if (ret)
> -		dp->psr_enable = false;
>  
>  	return ret;
>  }
> -- 
> Sean Paul, Software Engineer, Google / Chromium OS
>
Hi Sean,

Am Donnerstag, 25. Juli 2019, 20:08:12 CEST schrieb Sean Paul:
> On Tue, Jun 11, 2019 at 12:08:21PM -0400, Sean Paul wrote:
> > From: Sean Paul <seanpaul@chromium.org>
> > 
> > Once we start shutting off the link during PSR, we're going to want fast
> > training to work. If the display doesn't support fast training, don't
> > enable psr.
> > 
> > Changes in v2:
> > - None
> > Changes in v3:
> > - None
> > Changes in v4:
> > - None
> > Changes in v5:
> > - None
> > 
> > Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190228210939.83386-3-sean@poorly.run
> > Link to v2: https://patchwork.freedesktop.org/patch/msgid/20190326204509.96515-2-sean@poorly.run
> > Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-9-sean@poorly.run
> > Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-8-sean@poorly.run
> > 
> > Cc: Zain Wang <wzz@rock-chips.com>
> > Cc: Tomasz Figa <tfiga@chromium.org>
> > Tested-by: Heiko Stuebner <heiko@sntech.de>
> 
> @Heiko, could you please review patches 7-11? I'm worried they're going to start
> to rot and the helpers have already landed in Linus' tree.

I did look through the patches and nothing out of the ordinary sprang
out to my (somewhat untrained) eye and judging by my tested-tags I also
gave them a spin at some point - although it seems I never was actually on
cc for them.

In any case they look good to me, so if it helps you, you can add my
	Reviewed-by: Heiko Stuebner <heiko@sntech.de>
though should take the technical expertise on drm-internals with a
grain of salt.


Heiko



> > Signed-off-by: Sean Paul <seanpaul@chromium.org>
> > ---
> >  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++----
> >  1 file changed, 5 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > index d2de98d441845..a07d19e08b803 100644
> > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > @@ -1040,16 +1040,17 @@ static int analogix_dp_commit(struct analogix_dp_device *dp)
> >  	if (ret)
> >  		return ret;
> >  
> > +	/* Check whether panel supports fast training */
> > +	ret = analogix_dp_fast_link_train_detection(dp);
> > +	if (ret)
> > +		dp->psr_enable = false;
> > +
> >  	if (dp->psr_enable) {
> >  		ret = analogix_dp_enable_sink_psr(dp);
> >  		if (ret)
> >  			return ret;
> >  	}
> >  
> > -	/* Check whether panel supports fast training */
> > -	ret =  analogix_dp_fast_link_train_detection(dp);
> > -	if (ret)
> > -		dp->psr_enable = false;
> >  
> >  	return ret;
> >  }
> 
>
On Thu, Jul 25, 2019 at 08:39:42PM +0200, Heiko Stuebner wrote:
> Hi Sean,
> 
> Am Donnerstag, 25. Juli 2019, 20:08:12 CEST schrieb Sean Paul:
> > On Tue, Jun 11, 2019 at 12:08:21PM -0400, Sean Paul wrote:
> > > From: Sean Paul <seanpaul@chromium.org>
> > > 
> > > Once we start shutting off the link during PSR, we're going to want fast
> > > training to work. If the display doesn't support fast training, don't
> > > enable psr.
> > > 
> > > Changes in v2:
> > > - None
> > > Changes in v3:
> > > - None
> > > Changes in v4:
> > > - None
> > > Changes in v5:
> > > - None
> > > 
> > > Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190228210939.83386-3-sean@poorly.run
> > > Link to v2: https://patchwork.freedesktop.org/patch/msgid/20190326204509.96515-2-sean@poorly.run
> > > Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-9-sean@poorly.run
> > > Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-8-sean@poorly.run
> > > 
> > > Cc: Zain Wang <wzz@rock-chips.com>
> > > Cc: Tomasz Figa <tfiga@chromium.org>
> > > Tested-by: Heiko Stuebner <heiko@sntech.de>
> > 
> > @Heiko, could you please review patches 7-11? I'm worried they're going to start
> > to rot and the helpers have already landed in Linus' tree.
> 
> I did look through the patches and nothing out of the ordinary sprang
> out to my (somewhat untrained) eye and judging by my tested-tags I also
> gave them a spin at some point - although it seems I never was actually on
> cc for them.
> 
> In any case they look good to me, so if it helps you, you can add my
> 	Reviewed-by: Heiko Stuebner <heiko@sntech.de>
> though should take the technical expertise on drm-internals with a
> grain of salt.

Thanks Heiko! Given how long this has been on the list and that both you and I
have tested it, I've pushed it to drm-misc-next with your R-b. I'll keep an eye
on things as it rolls out and hopefully everything will go smoothly.

Sean

> 
> 
> Heiko
> 
> 
> 
> > > Signed-off-by: Sean Paul <seanpaul@chromium.org>
> > > ---
> > >  drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++----
> > >  1 file changed, 5 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > > index d2de98d441845..a07d19e08b803 100644
> > > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
> > > @@ -1040,16 +1040,17 @@ static int analogix_dp_commit(struct analogix_dp_device *dp)
> > >  	if (ret)
> > >  		return ret;
> > >  
> > > +	/* Check whether panel supports fast training */
> > > +	ret = analogix_dp_fast_link_train_detection(dp);
> > > +	if (ret)
> > > +		dp->psr_enable = false;
> > > +
> > >  	if (dp->psr_enable) {
> > >  		ret = analogix_dp_enable_sink_psr(dp);
> > >  		if (ret)
> > >  			return ret;
> > >  	}
> > >  
> > > -	/* Check whether panel supports fast training */
> > > -	ret =  analogix_dp_fast_link_train_detection(dp);
> > > -	if (ret)
> > > -		dp->psr_enable = false;
> > >  
> > >  	return ret;
> > >  }
> > 
> > 
> 
> 
> 
>