diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-11-19 00:52:38 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-11-19 00:52:38 -0500 |
commit | 5e8940fa6e33d09091aa4bcf04b0f9e79596e1b8 (patch) | |
tree | 35f8d03a2c7f0f03e20399aa146119de93778e85 | |
parent | f02f340e466a415b4e01648ca1e323f4ce125885 (diff) |
fix logic in connector table check for TVs and switch counter to symbolic names
-rw-r--r-- | src/radeon_bios.c | 18 | ||||
-rw-r--r-- | src/radeon_probe.h | 15 |
2 files changed, 24 insertions, 9 deletions
diff --git a/src/radeon_bios.c b/src/radeon_bios.c index a9da8893..5e33d98f 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -214,7 +214,7 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) for (i = 0; i < RADEON_MAX_BIOS_CONNECTOR; i++) { if (tmp & (1 << i)) { - if (i == 8) { + if (i == DEVICE_CV) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Skipping Component Video\n"); info->BiosConnector[i].valid = FALSE; continue; @@ -228,17 +228,17 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) tmp0 = RADEON_BIOS16(info->MasterDataStart + 24); gpio = RADEON_BIOS16(tmp0 + 4 + 27 * id) * 4; /* don't assign a gpio for tv */ - if ((i == 2) && (i == 6) && (i == 8)) + if ((i == DEVICE_TV1) || (i == DEVICE_TV2) || (i == DEVICE_CV)) info->BiosConnector[i].ddc_line = 0; else info->BiosConnector[i].ddc_line = gpio; info->BiosConnector[i].output_id = id; - if (i == 3) + if (i == DEVICE_DFP1) info->BiosConnector[i].TMDSType = TMDS_INT; - else if (i == 7) + else if (i == DEVICE_DFP2) info->BiosConnector[i].TMDSType = TMDS_EXT; - else if (i == 9) + else if (i == DEVICE_DFP3) info->BiosConnector[i].TMDSType = TMDS_EXT; else info->BiosConnector[i].TMDSType = TMDS_UNKNOWN; @@ -258,12 +258,12 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) for (j = 0; j < RADEON_MAX_BIOS_CONNECTOR; j++) { if (info->BiosConnector[j].valid && (i != j) ) { if (info->BiosConnector[i].output_id == info->BiosConnector[j].output_id) { - if (((i == 3) || (i == 7) || (i == 9)) && - ((j == 0) || (j == 4))) { + if (((i == DEVICE_DFP1) || (i == DEVICE_DFP2) || (i == DEVICE_DFP3)) && + ((j == DEVICE_CRT1) || (j == DEVICE_CRT2))) { info->BiosConnector[i].DACType = info->BiosConnector[j].DACType; info->BiosConnector[j].valid = FALSE; - } else if (((j == 3) || (j == 7) || (j == 9)) && - ((i == 0) || (i == 4))) { + } else if (((j == DEVICE_DFP1) || (j == DEVICE_DFP2) || (j == DEVICE_DFP3)) && + ((i == DEVICE_CRT1) || (i == DEVICE_CRT2))) { info->BiosConnector[j].DACType = info->BiosConnector[i].DACType; info->BiosConnector[i].valid = FALSE; } diff --git a/src/radeon_probe.h b/src/radeon_probe.h index bac2f514..24dceea7 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -66,6 +66,21 @@ typedef enum MT_DP = 8 } RADEONMonitorType; +/* ATOM bios output devices table */ +typedef enum +{ + DEVICE_CRT1 = 0, + DEVICE_LCD1 = 1, + DEVICE_TV1 = 2, + DEVICE_DFP1 = 3, + DEVICE_CRT2 = 4, + DEVICE_LCD2 = 5, + DEVICE_TV2 = 6, + DEVICE_DFP2 = 7, + DEVICE_CV = 8, + DEVICE_DFP3 = 9 +} RADEONDeviceType; + typedef enum { CONNECTOR_NONE, |