aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_sprite.c
diff options
context:
space:
mode:
authorArmin Reese <armin.c.reese@intel.com>2012-03-30 19:20:16 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-04-17 11:54:51 -0400
commit446f254566ea8911c9e19c7bc8a162fc0e53cf31 (patch)
tree22c60cf8cf85a7e87676780faeca086dafbb2596 /drivers/gpu/drm/i915/intel_sprite.c
parent83de97c885b633ab6d12346a406911fadeb85f8c (diff)
drm/i915: Mask reserved bits in display/sprite address registers
The purpose of this patch is to avoid zeroing the lower 12 reserved bits of surface base address registers (framebuffer & sprite). There are bits in that range that may occasionally be set by BIOS or by other components. Signed-off-by: Armin Reese <armin.c.reese@intel.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> 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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 987800a0234f..fbf03b996587 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -133,7 +133,7 @@ ivb_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
133 I915_WRITE(SPRSIZE(pipe), (crtc_h << 16) | crtc_w); 133 I915_WRITE(SPRSIZE(pipe), (crtc_h << 16) | crtc_w);
134 I915_WRITE(SPRSCALE(pipe), sprscale); 134 I915_WRITE(SPRSCALE(pipe), sprscale);
135 I915_WRITE(SPRCTL(pipe), sprctl); 135 I915_WRITE(SPRCTL(pipe), sprctl);
136 I915_WRITE(SPRSURF(pipe), obj->gtt_offset); 136 I915_MODIFY_DISPBASE(SPRSURF(pipe), obj->gtt_offset);
137 POSTING_READ(SPRSURF(pipe)); 137 POSTING_READ(SPRSURF(pipe));
138} 138}
139 139
@@ -149,7 +149,7 @@ ivb_disable_plane(struct drm_plane *plane)
149 /* Can't leave the scaler enabled... */ 149 /* Can't leave the scaler enabled... */
150 I915_WRITE(SPRSCALE(pipe), 0); 150 I915_WRITE(SPRSCALE(pipe), 0);
151 /* Activate double buffered register update */ 151 /* Activate double buffered register update */
152 I915_WRITE(SPRSURF(pipe), 0); 152 I915_MODIFY_DISPBASE(SPRSURF(pipe), 0);
153 POSTING_READ(SPRSURF(pipe)); 153 POSTING_READ(SPRSURF(pipe));
154} 154}
155 155
@@ -291,7 +291,7 @@ ilk_update_plane(struct drm_plane *plane, struct drm_framebuffer *fb,
291 I915_WRITE(DVSSIZE(pipe), (crtc_h << 16) | crtc_w); 291 I915_WRITE(DVSSIZE(pipe), (crtc_h << 16) | crtc_w);
292 I915_WRITE(DVSSCALE(pipe), dvsscale); 292 I915_WRITE(DVSSCALE(pipe), dvsscale);
293 I915_WRITE(DVSCNTR(pipe), dvscntr); 293 I915_WRITE(DVSCNTR(pipe), dvscntr);
294 I915_WRITE(DVSSURF(pipe), obj->gtt_offset); 294 I915_MODIFY_DISPBASE(DVSSURF(pipe), obj->gtt_offset);
295 POSTING_READ(DVSSURF(pipe)); 295 POSTING_READ(DVSSURF(pipe));
296} 296}
297 297
@@ -307,7 +307,7 @@ ilk_disable_plane(struct drm_plane *plane)
307 /* Disable the scaler */ 307 /* Disable the scaler */
308 I915_WRITE(DVSSCALE(pipe), 0); 308 I915_WRITE(DVSSCALE(pipe), 0);
309 /* Flush double buffered register updates */ 309 /* Flush double buffered register updates */
310 I915_WRITE(DVSSURF(pipe), 0); 310 I915_MODIFY_DISPBASE(DVSSURF(pipe), 0);
311 POSTING_READ(DVSSURF(pipe)); 311 POSTING_READ(DVSSURF(pipe));
312} 312}
313 313