drm/i915: Calculate the sprite WM based on the source width instead of the destinatio...
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 5 Jul 2013 08:57:15 +0000 (11:57 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 5 Aug 2013 17:03:56 +0000 (19:03 +0200)
Using the destination width in the sprite WM calculations isn't correct.
We should be using the source width.

Note: This doesn't affect hsw since it does not support sprite
scaling.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
[danvet: Add review note from Paulo to the commit message.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_sprite.c

index 3e3a6d01cff68cdf173d3803043210bc407c7bbe..5a36afb6ea030edd7faedc75538608d4096c1080 100644 (file)
@@ -108,7 +108,7 @@ vlv_update_plane(struct drm_plane *dplane, struct drm_framebuffer *fb,
 
        sprctl |= SP_ENABLE;
 
-       intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true,
+       intel_update_sprite_watermarks(dev, pipe, src_w, pixel_size, true,
                                       src_w != crtc_w || src_h != crtc_h);
 
        /* Sizes are 0 based */
@@ -263,7 +263,7 @@ ivb_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
        if (IS_HASWELL(dev))
                sprctl |= SPRITE_PIPE_CSC_ENABLE;
 
-       intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true,
+       intel_update_sprite_watermarks(dev, pipe, src_w, pixel_size, true,
                                       src_w != crtc_w || src_h != crtc_h);
 
        /* Sizes are 0 based */
@@ -452,7 +452,7 @@ ilk_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
                dvscntr |= DVS_TRICKLE_FEED_DISABLE; /* must disable */
        dvscntr |= DVS_ENABLE;
 
-       intel_update_sprite_watermarks(dev, pipe, crtc_w, pixel_size, true,
+       intel_update_sprite_watermarks(dev, pipe, src_w, pixel_size, true,
                                       src_w != crtc_w || src_h != crtc_h);
 
        /* Sizes are 0 based */