aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_tv.c
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2012-10-29 11:25:35 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-11 17:51:00 -0500
commitf5d8491a92e4e5146edf61ed5dda8b4f808b460a (patch)
treea815435616f592b297f668ba1c7d73518ad7984c /drivers/gpu/drm/i915/intel_tv.c
parent01a415fd026c1a413a7016ee880fff7a113af6c8 (diff)
drm/i915/tv: Use intel_flush_display_plane() to flush the primary plane
Instead of writing to the DSP_ADDR ourselves. This will do the right thing on gen >= 4 as well. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_tv.c')
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 62bb048c135e..86d5c20c325a 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1088,13 +1088,11 @@ intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
1088 int dspcntr_reg = DSPCNTR(intel_crtc->plane); 1088 int dspcntr_reg = DSPCNTR(intel_crtc->plane);
1089 int pipeconf = I915_READ(pipeconf_reg); 1089 int pipeconf = I915_READ(pipeconf_reg);
1090 int dspcntr = I915_READ(dspcntr_reg); 1090 int dspcntr = I915_READ(dspcntr_reg);
1091 int dspbase_reg = DSPADDR(intel_crtc->plane);
1092 int xpos = 0x0, ypos = 0x0; 1091 int xpos = 0x0, ypos = 0x0;
1093 unsigned int xsize, ysize; 1092 unsigned int xsize, ysize;
1094 /* Pipe must be off here */ 1093 /* Pipe must be off here */
1095 I915_WRITE(dspcntr_reg, dspcntr & ~DISPLAY_PLANE_ENABLE); 1094 I915_WRITE(dspcntr_reg, dspcntr & ~DISPLAY_PLANE_ENABLE);
1096 /* Flush the plane changes */ 1095 intel_flush_display_plane(dev_priv, intel_crtc->plane);
1097 I915_WRITE(dspbase_reg, I915_READ(dspbase_reg));
1098 1096
1099 /* Wait for vblank for the disable to take effect */ 1097 /* Wait for vblank for the disable to take effect */
1100 if (IS_GEN2(dev)) 1098 if (IS_GEN2(dev))
@@ -1123,8 +1121,7 @@ intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
1123 1121
1124 I915_WRITE(pipeconf_reg, pipeconf); 1122 I915_WRITE(pipeconf_reg, pipeconf);
1125 I915_WRITE(dspcntr_reg, dspcntr); 1123 I915_WRITE(dspcntr_reg, dspcntr);
1126 /* Flush the plane changes */ 1124 intel_flush_display_plane(dev_priv, intel_crtc->plane);
1127 I915_WRITE(dspbase_reg, I915_READ(dspbase_reg));
1128 } 1125 }
1129 1126
1130 j = 0; 1127 j = 0;