summaryrefslogtreecommitdiff
path: root/src/radeon_atombios.c
diff options
context:
space:
mode:
authorAlex Deucher <alex@cube.(none)>2008-02-23 18:29:00 -0500
committerAlex Deucher <alex@cube.(none)>2008-02-23 18:29:00 -0500
commit9dc4acad79196e9d5d94dd710773bfa83456d47f (patch)
tree62a26eac892bae92e393fdf1848cc92a2dfecfe5 /src/radeon_atombios.c
parented0a93edf28155308e7ab9d8705581bb38455ea0 (diff)
RS6xx: gpio entry for DDIA varies depending on the number of DFP ports
Diffstat (limited to 'src/radeon_atombios.c')
-rw-r--r--src/radeon_atombios.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
index fbe937d6..88c220b2 100644
--- a/src/radeon_atombios.c
+++ b/src/radeon_atombios.c
@@ -1759,11 +1759,15 @@ RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn)
(i == ATOM_DEVICE_TV2_INDEX) ||
(i == ATOM_DEVICE_CV_INDEX))
info->BiosConnector[i].ddc_i2c.valid = FALSE;
- else if ((i == ATOM_DEVICE_DFP3_INDEX) && info->IsIGP)
- /* DDIA port uses gpio entry 3 */
- info->BiosConnector[i].ddc_i2c =
- RADEONLookupGPIOLineForDDC(pScrn, 3);
- else
+ else if ((i == ATOM_DEVICE_DFP3_INDEX) && info->IsIGP) {
+ /* DDIA port uses non-standard gpio entry */
+ if (info->BiosConnector[ATOM_DEVICE_DFP2_INDEX].valid)
+ info->BiosConnector[i].ddc_i2c =
+ RADEONLookupGPIOLineForDDC(pScrn, ci.sucI2cId.sbfAccess.bfI2C_LineMux + 2);
+ else
+ info->BiosConnector[i].ddc_i2c =
+ RADEONLookupGPIOLineForDDC(pScrn, ci.sucI2cId.sbfAccess.bfI2C_LineMux + 1);
+ } else
info->BiosConnector[i].ddc_i2c =
RADEONLookupGPIOLineForDDC(pScrn, ci.sucI2cId.sbfAccess.bfI2C_LineMux);