diff options
author | Damien Lespiau <damien.lespiau@intel.com> | 2012-10-29 11:25:35 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-11-11 17:51:00 -0500 |
commit | f5d8491a92e4e5146edf61ed5dda8b4f808b460a (patch) | |
tree | a815435616f592b297f668ba1c7d73518ad7984c /drivers/gpu | |
parent | 01a415fd026c1a413a7016ee880fff7a113af6c8 (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')
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 7 |
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; |