diff mbox

[2/2] drm/i915: Double the cursor self-refresh latency on Valleyview

Message ID 1355227303-17157-2-git-send-email-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show

Commit Message

Chris Wilson Dec. 11, 2012, 12:01 p.m. UTC
It operates at twice the declared latency, so double the latency value
used for the cursor watermark calculation.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50248
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
CC: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_pm.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

Comments

Jesse Barnes Dec. 11, 2012, 4:28 p.m. UTC | #1
On Tue, 11 Dec 2012 12:01:43 +0000
Chris Wilson <chris@chris-wilson.co.uk> wrote:

> It operates at twice the declared latency, so double the latency value
> used for the cursor watermark calculation.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50248
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> CC: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/intel_pm.c |    8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 1e61f5e..20daf58 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -1289,6 +1289,7 @@ static void valleyview_update_wm(struct drm_device *dev)
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	int planea_wm, planeb_wm, cursora_wm, cursorb_wm;
>  	int plane_sr, cursor_sr;
> +	int ignore_plane_sr, ignore_cursor_sr;
>  	unsigned int enabled = 0;
>  
>  	vlv_update_drain_latency(dev);
> @@ -1311,7 +1312,12 @@ static void valleyview_update_wm(struct drm_device *dev)
>  			     sr_latency_ns,
>  			     &valleyview_wm_info,
>  			     &valleyview_cursor_wm_info,
> -			     &plane_sr, &cursor_sr))
> +			     &plane_sr, &ignore_cursor_sr) &&
> +	    g4x_compute_srwm(dev, ffs(enabled) - 1,
> +			     2*sr_latency_ns,
> +			     &valleyview_wm_info,
> +			     &valleyview_cursor_wm_info,
> +			     &ignore_plane_sr, &cursor_sr))
>  		I915_WRITE(FW_BLC_SELF_VLV, FW_CSPWRDWNEN);
>  	else
>  		I915_WRITE(FW_BLC_SELF_VLV,

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Probably need to add a comment in here somewhere, along the lines of
"watch out for minotaurs" or "bring string".
Daniel Vetter Dec. 17, 2012, 11:38 a.m. UTC | #2
On Tue, Dec 11, 2012 at 08:28:42AM -0800, Jesse Barnes wrote:
> On Tue, 11 Dec 2012 12:01:43 +0000
> Chris Wilson <chris@chris-wilson.co.uk> wrote:
> 
> > It operates at twice the declared latency, so double the latency value
> > used for the cursor watermark calculation.
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50248
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > CC: Jesse Barnes <jbarnes@virtuousgeek.org>
> > ---
> >  drivers/gpu/drm/i915/intel_pm.c |    8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> > index 1e61f5e..20daf58 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -1289,6 +1289,7 @@ static void valleyview_update_wm(struct drm_device *dev)
> >  	struct drm_i915_private *dev_priv = dev->dev_private;
> >  	int planea_wm, planeb_wm, cursora_wm, cursorb_wm;
> >  	int plane_sr, cursor_sr;
> > +	int ignore_plane_sr, ignore_cursor_sr;
> >  	unsigned int enabled = 0;
> >  
> >  	vlv_update_drain_latency(dev);
> > @@ -1311,7 +1312,12 @@ static void valleyview_update_wm(struct drm_device *dev)
> >  			     sr_latency_ns,
> >  			     &valleyview_wm_info,
> >  			     &valleyview_cursor_wm_info,
> > -			     &plane_sr, &cursor_sr))
> > +			     &plane_sr, &ignore_cursor_sr) &&
> > +	    g4x_compute_srwm(dev, ffs(enabled) - 1,
> > +			     2*sr_latency_ns,
> > +			     &valleyview_wm_info,
> > +			     &valleyview_cursor_wm_info,
> > +			     &ignore_plane_sr, &cursor_sr))
> >  		I915_WRITE(FW_BLC_SELF_VLV, FW_CSPWRDWNEN);
> >  	else
> >  		I915_WRITE(FW_BLC_SELF_VLV,
> 
> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> 
> Probably need to add a comment in here somewhere, along the lines of
> "watch out for minotaurs" or "bring string".

Both patches applied to -fixes, thanks.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 1e61f5e..20daf58 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -1289,6 +1289,7 @@  static void valleyview_update_wm(struct drm_device *dev)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int planea_wm, planeb_wm, cursora_wm, cursorb_wm;
 	int plane_sr, cursor_sr;
+	int ignore_plane_sr, ignore_cursor_sr;
 	unsigned int enabled = 0;
 
 	vlv_update_drain_latency(dev);
@@ -1311,7 +1312,12 @@  static void valleyview_update_wm(struct drm_device *dev)
 			     sr_latency_ns,
 			     &valleyview_wm_info,
 			     &valleyview_cursor_wm_info,
-			     &plane_sr, &cursor_sr))
+			     &plane_sr, &ignore_cursor_sr) &&
+	    g4x_compute_srwm(dev, ffs(enabled) - 1,
+			     2*sr_latency_ns,
+			     &valleyview_wm_info,
+			     &valleyview_cursor_wm_info,
+			     &ignore_plane_sr, &cursor_sr))
 		I915_WRITE(FW_BLC_SELF_VLV, FW_CSPWRDWNEN);
 	else
 		I915_WRITE(FW_BLC_SELF_VLV,