aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index aaa9a752b7b6..a45bb92f35ad 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1980,16 +1980,17 @@ static int i9xx_update_plane(struct drm_crtc *crtc, struct drm_framebuffer *fb,
1980 intel_crtc->dspaddr_offset = linear_offset; 1980 intel_crtc->dspaddr_offset = linear_offset;
1981 } 1981 }
1982 1982
1983 DRM_DEBUG_KMS("Writing base %08X %08lX %d %d %d\n", 1983 DRM_DEBUG_KMS("Writing base %08lX %08lX %d %d %d\n",
1984 obj->gtt_offset, linear_offset, x, y, fb->pitches[0]); 1984 i915_gem_obj_ggtt_offset(obj), linear_offset, x, y,
1985 fb->pitches[0]);
1985 I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]); 1986 I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]);
1986 if (INTEL_INFO(dev)->gen >= 4) { 1987 if (INTEL_INFO(dev)->gen >= 4) {
1987 I915_MODIFY_DISPBASE(DSPSURF(plane), 1988 I915_MODIFY_DISPBASE(DSPSURF(plane),
1988 obj->gtt_offset + intel_crtc->dspaddr_offset); 1989 i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset);
1989 I915_WRITE(DSPTILEOFF(plane), (y << 16) | x); 1990 I915_WRITE(DSPTILEOFF(plane), (y << 16) | x);
1990 I915_WRITE(DSPLINOFF(plane), linear_offset); 1991 I915_WRITE(DSPLINOFF(plane), linear_offset);
1991 } else 1992 } else
1992 I915_WRITE(DSPADDR(plane), obj->gtt_offset + linear_offset); 1993 I915_WRITE(DSPADDR(plane), i915_gem_obj_ggtt_offset(obj) + linear_offset);
1993 POSTING_READ(reg); 1994 POSTING_READ(reg);
1994 1995
1995 return 0; 1996 return 0;
@@ -2069,11 +2070,12 @@ static int ironlake_update_plane(struct drm_crtc *crtc,
2069 fb->pitches[0]); 2070 fb->pitches[0]);
2070 linear_offset -= intel_crtc->dspaddr_offset; 2071 linear_offset -= intel_crtc->dspaddr_offset;
2071 2072
2072 DRM_DEBUG_KMS("Writing base %08X %08lX %d %d %d\n", 2073 DRM_DEBUG_KMS("Writing base %08lX %08lX %d %d %d\n",
2073 obj->gtt_offset, linear_offset, x, y, fb->pitches[0]); 2074 i915_gem_obj_ggtt_offset(obj), linear_offset, x, y,
2075 fb->pitches[0]);
2074 I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]); 2076 I915_WRITE(DSPSTRIDE(plane), fb->pitches[0]);
2075 I915_MODIFY_DISPBASE(DSPSURF(plane), 2077 I915_MODIFY_DISPBASE(DSPSURF(plane),
2076 obj->gtt_offset + intel_crtc->dspaddr_offset); 2078 i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset);
2077 if (IS_HASWELL(dev)) { 2079 if (IS_HASWELL(dev)) {
2078 I915_WRITE(DSPOFFSET(plane), (y << 16) | x); 2080 I915_WRITE(DSPOFFSET(plane), (y << 16) | x);
2079 } else { 2081 } else {
@@ -6567,7 +6569,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc,
6567 goto fail_unpin; 6569 goto fail_unpin;
6568 } 6570 }
6569 6571
6570 addr = obj->gtt_offset; 6572 addr = i915_gem_obj_ggtt_offset(obj);
6571 } else { 6573 } else {
6572 int align = IS_I830(dev) ? 16 * 1024 : 256; 6574 int align = IS_I830(dev) ? 16 * 1024 : 256;
6573 ret = i915_gem_attach_phys_object(dev, obj, 6575 ret = i915_gem_attach_phys_object(dev, obj,
@@ -7339,7 +7341,7 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
7339 intel_ring_emit(ring, MI_DISPLAY_FLIP | 7341 intel_ring_emit(ring, MI_DISPLAY_FLIP |
7340 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); 7342 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
7341 intel_ring_emit(ring, fb->pitches[0]); 7343 intel_ring_emit(ring, fb->pitches[0]);
7342 intel_ring_emit(ring, obj->gtt_offset + intel_crtc->dspaddr_offset); 7344 intel_ring_emit(ring, i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset);
7343 intel_ring_emit(ring, 0); /* aux display base address, unused */ 7345 intel_ring_emit(ring, 0); /* aux display base address, unused */
7344 7346
7345 intel_mark_page_flip_active(intel_crtc); 7347 intel_mark_page_flip_active(intel_crtc);
@@ -7380,7 +7382,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
7380 intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | 7382 intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 |
7381 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); 7383 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
7382 intel_ring_emit(ring, fb->pitches[0]); 7384 intel_ring_emit(ring, fb->pitches[0]);
7383 intel_ring_emit(ring, obj->gtt_offset + intel_crtc->dspaddr_offset); 7385 intel_ring_emit(ring, i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset);
7384 intel_ring_emit(ring, MI_NOOP); 7386 intel_ring_emit(ring, MI_NOOP);
7385 7387
7386 intel_mark_page_flip_active(intel_crtc); 7388 intel_mark_page_flip_active(intel_crtc);
@@ -7420,7 +7422,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
7420 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); 7422 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
7421 intel_ring_emit(ring, fb->pitches[0]); 7423 intel_ring_emit(ring, fb->pitches[0]);
7422 intel_ring_emit(ring, 7424 intel_ring_emit(ring,
7423 (obj->gtt_offset + intel_crtc->dspaddr_offset) | 7425 (i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset) |
7424 obj->tiling_mode); 7426 obj->tiling_mode);
7425 7427
7426 /* XXX Enabling the panel-fitter across page-flip is so far 7428 /* XXX Enabling the panel-fitter across page-flip is so far
@@ -7463,7 +7465,7 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
7463 intel_ring_emit(ring, MI_DISPLAY_FLIP | 7465 intel_ring_emit(ring, MI_DISPLAY_FLIP |
7464 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane)); 7466 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
7465 intel_ring_emit(ring, fb->pitches[0] | obj->tiling_mode); 7467 intel_ring_emit(ring, fb->pitches[0] | obj->tiling_mode);
7466 intel_ring_emit(ring, obj->gtt_offset + intel_crtc->dspaddr_offset); 7468 intel_ring_emit(ring, i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset);
7467 7469
7468 /* Contrary to the suggestions in the documentation, 7470 /* Contrary to the suggestions in the documentation,
7469 * "Enable Panel Fitter" does not seem to be required when page 7471 * "Enable Panel Fitter" does not seem to be required when page
@@ -7528,7 +7530,7 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
7528 7530
7529 intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit); 7531 intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit);
7530 intel_ring_emit(ring, (fb->pitches[0] | obj->tiling_mode)); 7532 intel_ring_emit(ring, (fb->pitches[0] | obj->tiling_mode));
7531 intel_ring_emit(ring, obj->gtt_offset + intel_crtc->dspaddr_offset); 7533 intel_ring_emit(ring, i915_gem_obj_ggtt_offset(obj) + intel_crtc->dspaddr_offset);
7532 intel_ring_emit(ring, (MI_NOOP)); 7534 intel_ring_emit(ring, (MI_NOOP));
7533 7535
7534 intel_mark_page_flip_active(intel_crtc); 7536 intel_mark_page_flip_active(intel_crtc);