drm/i915/tv: Preserve reserved DAC bits during mode-setting
authorChris Wilson <chris@chris-wilson.co.uk>
Sat, 4 Sep 2010 23:43:42 +0000 (00:43 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Wed, 8 Sep 2010 09:13:35 +0000 (10:13 +0100)
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/intel_tv.c

index d094e91292234507c82ea57cb57947a019318aa6..e240de9eed576d98433c04de60362b8196d59417 100644 (file)
 # define TV_TEST_MODE_MASK             (7 << 0)
 
 #define TV_DAC                 0x68004
+# define TV_DAC_SAVE           0x00ffff00
 /**
  * Reports that DAC state change logic has reported change (RO).
  *
index c671f60ce80bac917a61c1c60cdb02e692afcb85..fc5c6f2008fb1f01800b10d5628bda77bd542208 100644 (file)
@@ -1196,7 +1196,7 @@ intel_tv_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode,
                I915_WRITE(TV_V_LUMA_0 + (i<<2), tv_mode->filter_table[j++]);
        for (i = 0; i < 43; i++)
                I915_WRITE(TV_V_CHROMA_0 + (i<<2), tv_mode->filter_table[j++]);
-       I915_WRITE(TV_DAC, 0);
+       I915_WRITE(TV_DAC, I915_READ(TV_DAC) & TV_DAC_SAVE);
        I915_WRITE(TV_CTL, tv_ctl);
 }