aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorMa Ling <ling.ma@intel.com>2009-05-31 04:58:32 -0400
committerEric Anholt <eric@anholt.net>2009-06-05 08:53:26 -0400
commitcb66c692d1ae257f32dc7f6085cf9cb9f2f6bab8 (patch)
treec707469433b04eaf3e1ed245d51c301b4eb1274e /drivers/gpu/drm
parent541998a18b72d2cac48b3369fa4540116ff3f0a8 (diff)
drm/i915: Set correct TV detection voltage level override values
We detect TV connect status by setting DAC voltage level override values as 0.7 voltage for DAC_A/B/C. The corresponding 2-bits shold be 0x2, In order correctly to set last bit as 0, at first we must clean it. It fixed freedesktop.org bug #21204 Signed-off-by: Ma Ling <ling.ma@intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h6
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 99681cfb7ab9..79df9e9c38e4 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -958,15 +958,15 @@
958# define DAC_A_1_3_V (0 << 4) 958# define DAC_A_1_3_V (0 << 4)
959# define DAC_A_1_1_V (1 << 4) 959# define DAC_A_1_1_V (1 << 4)
960# define DAC_A_0_7_V (2 << 4) 960# define DAC_A_0_7_V (2 << 4)
961# define DAC_A_OFF (3 << 4) 961# define DAC_A_MASK (3 << 4)
962# define DAC_B_1_3_V (0 << 2) 962# define DAC_B_1_3_V (0 << 2)
963# define DAC_B_1_1_V (1 << 2) 963# define DAC_B_1_1_V (1 << 2)
964# define DAC_B_0_7_V (2 << 2) 964# define DAC_B_0_7_V (2 << 2)
965# define DAC_B_OFF (3 << 2) 965# define DAC_B_MASK (3 << 2)
966# define DAC_C_1_3_V (0 << 0) 966# define DAC_C_1_3_V (0 << 0)
967# define DAC_C_1_1_V (1 << 0) 967# define DAC_C_1_1_V (1 << 0)
968# define DAC_C_0_7_V (2 << 0) 968# define DAC_C_0_7_V (2 << 0)
969# define DAC_C_OFF (3 << 0) 969# define DAC_C_MASK (3 << 0)
970 970
971/** 971/**
972 * CSC coefficients are stored in a floating point format with 9 bits of 972 * CSC coefficients are stored in a floating point format with 9 bits of
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index d2c32983242d..c7d9ef01dbf6 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -1392,6 +1392,9 @@ intel_tv_detect_type (struct drm_crtc *crtc, struct intel_output *intel_output)
1392 tv_ctl &= ~TV_TEST_MODE_MASK; 1392 tv_ctl &= ~TV_TEST_MODE_MASK;
1393 tv_ctl |= TV_TEST_MODE_MONITOR_DETECT; 1393 tv_ctl |= TV_TEST_MODE_MONITOR_DETECT;
1394 tv_dac &= ~TVDAC_SENSE_MASK; 1394 tv_dac &= ~TVDAC_SENSE_MASK;
1395 tv_dac &= ~DAC_A_MASK;
1396 tv_dac &= ~DAC_B_MASK;
1397 tv_dac &= ~DAC_C_MASK;
1395 tv_dac |= (TVDAC_STATE_CHG_EN | 1398 tv_dac |= (TVDAC_STATE_CHG_EN |
1396 TVDAC_A_SENSE_CTL | 1399 TVDAC_A_SENSE_CTL |
1397 TVDAC_B_SENSE_CTL | 1400 TVDAC_B_SENSE_CTL |