diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-08-19 17:04:35 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-08-19 17:04:35 -0400 |
commit | ad8ea1f6e5fcb4f163622cf5eab953ea812b5829 (patch) | |
tree | a31d15d7374793a2ca888bab9bdab0fa08878fb7 | |
parent | fd686668289258ffaf6b81057545e50612aac6a8 (diff) |
DCE3+: switch pads to ddc mode when doing i2c
The pins for ddc and aux are shared so you need to switch the
mode when doing ddc. The ProcessAuxChannel table already sets
the pin mode to DP. This should fix unreliable ddc issues
on DP ports using non-DP monitors.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r-- | src/radeon_output.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c index a0a682f8..121be75b 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -1874,6 +1874,13 @@ RADEONI2CDoLock(xf86OutputPtr output, I2CBusPtr b, int lock_state) R200_DVI_I2C_PIN_SEL(R200_SEL_DDC3))); } + /* set the pad in ddc mode */ + if (IS_DCE3_VARIANT) { + temp = INREG(pRADEONI2CBus->mask_clk_reg); + temp &= ~(1 << 16); + OUTREG(pRADEONI2CBus->mask_clk_reg, temp); + } + temp = INREG(pRADEONI2CBus->a_clk_reg); temp &= ~(pRADEONI2CBus->a_clk_mask); OUTREG(pRADEONI2CBus->a_clk_reg, temp); |