diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-10-08 16:30:36 -0400 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-10-08 16:30:36 -0400 |
commit | acf4024aa0ef192355b2bd8281507b1c2e6b7de4 (patch) | |
tree | ac0d29f6034cf2c8984f57547fcede0df5fcd3a1 | |
parent | 74fd2b91477106a26a2d9fb4b11c885910996041 (diff) |
ATOM DDC fixes for UMS
- Header size was already subtraced from table size
- Only hw capable ddc pads are shared with aux
-rw-r--r-- | src/radeon_atombios.c | 5 | ||||
-rw-r--r-- | src/radeon_output.c | 3 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index 27231cde..3da6068f 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -1533,8 +1533,7 @@ RADEONLookupGPIOLineForDDC(ScrnInfoPtr pScrn, uint8_t id) return i2c; } - num_indices = (size - sizeof(ATOM_COMMON_TABLE_HEADER)) / - sizeof(ATOM_GPIO_I2C_ASSIGMENT); + num_indices = size / sizeof(ATOM_GPIO_I2C_ASSIGMENT); for (i = 0; i < num_indices; i++) { gpio = &atomDataPtr->GPIO_I2C_Info->asGPIO_Info[i]; @@ -1635,7 +1634,7 @@ radeon_lookup_hpd_id(ScrnInfoPtr pScrn, ATOM_HPD_INT_RECORD *record) return hpd; } - num_indices = (size - sizeof(ATOM_COMMON_TABLE_HEADER)) / sizeof(ATOM_GPIO_PIN_ASSIGNMENT); + num_indices = size / sizeof(ATOM_GPIO_PIN_ASSIGNMENT); if (IS_DCE4_VARIANT) reg = EVERGREEN_DC_GPIO_HPD_A; diff --git a/src/radeon_output.c b/src/radeon_output.c index 283d32f4..689a5924 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -1875,7 +1875,8 @@ RADEONI2CDoLock(xf86OutputPtr output, I2CBusPtr b, int lock_state) } /* set the pad in ddc mode */ - if (IS_DCE3_VARIANT) { + if (IS_DCE3_VARIANT && + pRADEONI2CBus->hw_capable) { temp = INREG(pRADEONI2CBus->mask_clk_reg); temp &= ~(1 << 16); OUTREG(pRADEONI2CBus->mask_clk_reg, temp); |