aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-09-04 19:43:42 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-09-08 05:13:35 -0400
commitb8ed2a4f12870bf2ea9c07ff83ccd9d8b6abc2c6 (patch)
tree4c0b0c5cb715cfdd1bfa331b361a2a585ec498d6
parentefe8c25680fcd3548142f956dcd02d5fdaf3f159 (diff)
drm/i915/tv: Preserve reserved DAC bits during mode-setting
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h1
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index d094e9129223..e240de9eed57 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -1481,6 +1481,7 @@
1481# define TV_TEST_MODE_MASK (7 << 0) 1481# define TV_TEST_MODE_MASK (7 << 0)
1482 1482
1483#define TV_DAC 0x68004 1483#define TV_DAC 0x68004
1484# define TV_DAC_SAVE 0x00ffff00
1484/** 1485/**
1485 * Reports that DAC state change logic has reported change (RO). 1486 * Reports that DAC state change logic has reported change (RO).
1486 * 1487 *
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index c671f60ce80b..fc5c6f2008fb 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1196,7 +1196,7 @@ intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
1196 I915_WRITE(TV_V_LUMA_0 + (i<<2), tv_mode->filter_table[j++]); 1196 I915_WRITE(TV_V_LUMA_0 + (i<<2), tv_mode->filter_table[j++]);
1197 for (i = 0; i < 43; i++) 1197 for (i = 0; i < 43; i++)
1198 I915_WRITE(TV_V_CHROMA_0 + (i<<2), tv_mode->filter_table[j++]); 1198 I915_WRITE(TV_V_CHROMA_0 + (i<<2), tv_mode->filter_table[j++]);
1199 I915_WRITE(TV_DAC, 0); 1199 I915_WRITE(TV_DAC, I915_READ(TV_DAC) & TV_DAC_SAVE);
1200 I915_WRITE(TV_CTL, tv_ctl); 1200 I915_WRITE(TV_CTL, tv_ctl);
1201} 1201}
1202 1202