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 --- src/i810_reg.h | 6 +++--- src/i830_tv.c | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/i810_reg.h b/src/i810_reg.h index cb33784..a2ca01a 100644 --- a/src/i810_reg.h +++ b/src/i810_reg.h @@ -1664,15 +1664,15 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define DAC_A_1_3_V (0 << 4) # define DAC_A_1_1_V (1 << 4) # define DAC_A_0_7_V (2 << 4) -# define DAC_A_OFF (3 << 4) +# define DAC_A_MASK (3 << 4) # define DAC_B_1_3_V (0 << 2) # define DAC_B_1_1_V (1 << 2) # define DAC_B_0_7_V (2 << 2) -# define DAC_B_OFF (3 << 2) +# define DAC_B_MASK (3 << 2) # define DAC_C_1_3_V (0 << 0) # define DAC_C_1_1_V (1 << 0) # define DAC_C_0_7_V (2 << 0) -# define DAC_C_OFF (3 << 0) +# define DAC_C_MASK (3 << 0) /** @} */ /** diff --git a/src/i830_tv.c b/src/i830_tv.c index 8eb3e26..7082aba 100644 --- a/src/i830_tv.c +++ b/src/i830_tv.c @@ -1386,6 +1386,9 @@ i830_tv_detect_type (xf86CrtcPtr crtc, tv_ctl &= ~TV_TEST_MODE_MASK; tv_ctl |= TV_TEST_MODE_MONITOR_DETECT; tv_dac &= ~TVDAC_SENSE_MASK; + tv_dac &= ~DAC_A_MASK; + tv_dac &= ~DAC_B_MASK; + tv_dac &= ~DAC_C_MASK; tv_dac |= (TVDAC_STATE_CHG_EN | TVDAC_A_SENSE_CTL | TVDAC_B_SENSE_CTL |