drm/i915: Move CURSIZE setup to i845_update_cursor()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 12 Aug 2014 16:39:53 +0000 (19:39 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 13 Aug 2014 12:23:37 +0000 (14:23 +0200)
CURSIZE register exists on 845/865 only, so move it to
i845_update_cursor(). Changes to cursor size must be done only when the
cursor is disabled, so do the write just before enabling the cursor.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index a93d5ffd3863302c46b78be2f771a9d5d355a1b4..cd3dc3b72798750aa4e39e3443fc7c272ffa2a29 100644 (file)
@@ -8070,6 +8070,7 @@ static void i845_update_cursor(struct drm_crtc *crtc, u32 base)
                        CURSOR_GAMMA_ENABLE |
                        CURSOR_FORMAT_ARGB);
        if (intel_crtc->cursor_cntl != cntl) {
+               I915_WRITE(CURSIZE, (64 << 12) | 64);
                I915_WRITE(_CURACNTR, cntl);
                POSTING_READ(_CURACNTR);
                intel_crtc->cursor_cntl = cntl;
@@ -8219,7 +8220,6 @@ static int intel_crtc_cursor_set_obj(struct drm_crtc *crtc,
                                     uint32_t width, uint32_t height)
 {
        struct drm_device *dev = crtc->dev;
-       struct drm_i915_private *dev_priv = dev->dev_private;
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
        enum pipe pipe = intel_crtc->pipe;
        unsigned old_width;
@@ -8292,9 +8292,6 @@ static int intel_crtc_cursor_set_obj(struct drm_crtc *crtc,
                addr = obj->phys_handle->busaddr;
        }
 
-       if (IS_GEN2(dev))
-               I915_WRITE(CURSIZE, (height << 12) | width);
-
  finish:
        if (intel_crtc->cursor_bo) {
                if (!INTEL_INFO(dev)->cursor_needs_physical)