diff options
author | Ma Ling <ling.ma@intel.com> | 2009-05-31 04:58:32 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-06-05 08:53:26 -0400 |
commit | cb66c692d1ae257f32dc7f6085cf9cb9f2f6bab8 (patch) | |
tree | c707469433b04eaf3e1ed245d51c301b4eb1274e | |
parent | 541998a18b72d2cac48b3369fa4540116ff3f0a8 (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>
-rw-r--r-- | drivers/gpu/drm/i915/i915_reg.h | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_tv.c | 3 |
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 | |