aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_sprite.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2013-07-05 04:57:13 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-08-05 13:03:55 -0400
commitbdd57d0386d892e5c470a3d615c3034389700964 (patch)
tree460fff0732f034ab4cb1dc1c7d7da7b1688b1c26 /drivers/gpu/drm/i915/intel_sprite.c
parent2c1792a10b10e41dcf34c97304fb8f75e52e7112 (diff)
drm/i915: Add scaled paramater to update_sprite_watermarks()
For calculating watermarks we want to know whether sprites are scaled. Pass that information to update_sprite_watermarks() so that eventually we may do some watermark pre-computing. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sprite.c')
-rw-r--r--drivers/gpu/drm/i915/intel_sprite.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 55bdf70b548b..069155f17edb 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -114,7 +114,8 @@ vlv_update_plane(struct drm_plane *dplane, struct drm_framebuffer *fb,
114 crtc_w--; 114 crtc_w--;
115 crtc_h--; 115 crtc_h--;
116 116
117 intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true); 117 intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true,
118 src_w != crtc_w || src_h != crtc_h);
118 119
119 I915_WRITE(SPSTRIDE(pipe, plane), fb->pitches[0]); 120 I915_WRITE(SPSTRIDE(pipe, plane), fb->pitches[0]);
120 I915_WRITE(SPPOS(pipe, plane), (crtc_y << 16) | crtc_x); 121 I915_WRITE(SPPOS(pipe, plane), (crtc_y << 16) | crtc_x);
@@ -268,7 +269,8 @@ ivb_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
268 crtc_w--; 269 crtc_w--;
269 crtc_h--; 270 crtc_h--;
270 271
271 intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true); 272 intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true,
273 src_w != crtc_w || src_h != crtc_h);
272 274
273 /* 275 /*
274 * IVB workaround: must disable low power watermarks for at least 276 * IVB workaround: must disable low power watermarks for at least
@@ -336,7 +338,7 @@ ivb_disable_plane(struct drm_plane *plane)
336 338
337 dev_priv->sprite_scaling_enabled &= ~(1 << pipe); 339 dev_priv->sprite_scaling_enabled &= ~(1 << pipe);
338 340
339 intel_update_sprite_watermarks(dev, pipe, 0, 0, false); 341 intel_update_sprite_watermarks(dev, pipe, 0, 0, false, false);
340 342
341 /* potentially re-enable LP watermarks */ 343 /* potentially re-enable LP watermarks */
342 if (scaling_was_enabled && !dev_priv->sprite_scaling_enabled) 344 if (scaling_was_enabled && !dev_priv->sprite_scaling_enabled)
@@ -456,7 +458,8 @@ ilk_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
456 crtc_w--; 458 crtc_w--;
457 crtc_h--; 459 crtc_h--;
458 460
459 intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true); 461 intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true,
462 src_w != crtc_w || src_h != crtc_h);
460 463
461 dvsscale = 0; 464 dvsscale = 0;
462 if (IS_GEN5(dev) || crtc_w != src_w || crtc_h != src_h) 465 if (IS_GEN5(dev) || crtc_w != src_w || crtc_h != src_h)