diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-11-11 18:43:03 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-11-11 18:43:03 -0500 |
commit | 2ea95900547165e86ad3f8a41ce3331a05bad60e (patch) | |
tree | 54a3d4ca54c7fe48d6762c6b7c1709d86d9ec27d /src | |
parent | 7ce730828c293f0810dfdc554df48dfd76e35c49 (diff) |
Add full parsing support for atom bios connector table
Diffstat (limited to 'src')
-rw-r--r-- | src/radeon_bios.c | 15 | ||||
-rw-r--r-- | src/radeon_probe.h | 2 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/radeon_bios.c b/src/radeon_bios.c index 342e458b..7025afac 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -170,8 +170,15 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) if (offset) { tmp = RADEON_BIOS16(offset + 4); - for (i = 0; i < 8; i++) { + for (i = 0; i < RADEON_MAX_BIOS_CONNECTOR; i++) { if (tmp & (1 << i)) { + + if (i == 8) { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Skipping Component Video\n"); + info->BiosConnector[i].valid = FALSE; + continue; + } + info->BiosConnector[i].valid = TRUE; portinfo = RADEON_BIOS16(offset + 6 + i * 2); info->BiosConnector[i].DACType = (portinfo & 0xf) - 1; @@ -210,6 +217,8 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) info->BiosConnector[i].TMDSType = TMDS_INT; else if (i == 7) info->BiosConnector[i].TMDSType = TMDS_EXT; + else if (i == 9) + info->BiosConnector[i].TMDSType = TMDS_EXT; else info->BiosConnector[i].TMDSType = TMDS_UNKNOWN; @@ -227,10 +236,10 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) for (j = 0; j < 8; j++) { if (info->BiosConnector[j].valid && (i != j) ) { if (info->BiosConnector[i].output_id == info->BiosConnector[j].output_id) { - if ((i == 3) || (i == 7)) { + if ((i == 3) || (i == 7) || (i == 9)) { info->BiosConnector[i].DACType = info->BiosConnector[j].DACType; info->BiosConnector[j].valid = FALSE; - } else if ((j == 3) || (j == 7)) { + } else if ((j == 3) || (j == 7) || (j == 9)) { 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 c24993c7..6bf0dced 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -245,7 +245,7 @@ typedef struct _RADEONOutputPrivateRec { } RADEONOutputPrivateRec, *RADEONOutputPrivatePtr; #define RADEON_MAX_CRTC 2 -#define RADEON_MAX_BIOS_CONNECTOR 8 +#define RADEON_MAX_BIOS_CONNECTOR 16 typedef struct { |