drm/i915: Double the cursor self-refresh latency on Valleyview
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 11 Dec 2012 12:01:43 +0000 (12:01 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 17 Dec 2012 11:37:35 +0000 (12:37 +0100)
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>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index 9f1ee07ec4ae3c8d3c7a40f3f32ff52edaa9506c..cdd70e654af5a2812c473027a48f7382640fee62 100644 (file)
@@ -1286,6 +1286,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);
@@ -1308,7 +1309,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,