diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2013-07-05 04:57:13 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-08-05 13:03:55 -0400 |
commit | bdd57d0386d892e5c470a3d615c3034389700964 (patch) | |
tree | 460fff0732f034ab4cb1dc1c7d7da7b1688b1c26 /drivers/gpu/drm/i915/intel_sprite.c | |
parent | 2c1792a10b10e41dcf34c97304fb8f75e52e7112 (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.c | 11 |
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) |