diff options
author | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-06-04 20:22:15 -0400 |
---|---|---|
committer | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-06-04 20:22:15 -0400 |
commit | be0ce38232ea4f5679c5829ab663939144c6e617 (patch) | |
tree | bd97c8681ed8b83bb5b400a087abcf3ddb40f791 | |
parent | 8ec617f6493dd0aea5d11f92e3d58c3feef8c8fd (diff) |
RADEON: number the outputs if there are more than one of the same
-rw-r--r-- | src/radeon_output.c | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c index 99b65446..8060b4c7 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -1754,7 +1754,44 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn) radeon_output->TMDSType = info->BiosConnector[i].TMDSType; } RADEONSetOutputType(pScrn, radeon_output); - output = xf86OutputCreate(pScrn, &radeon_output_funcs, OutputType[radeon_output->type]); + if (info->IsAtomBios) { + if (((info->BiosConnector[0].ConnectorType == CONNECTOR_DVI_D_ATOM) || + (info->BiosConnector[0].ConnectorType == CONNECTOR_DVI_I_ATOM) || + (info->BiosConnector[0].ConnectorType == CONNECTOR_DVI_A_ATOM)) && + ((info->BiosConnector[1].ConnectorType == CONNECTOR_DVI_D_ATOM) || + (info->BiosConnector[1].ConnectorType == CONNECTOR_DVI_I_ATOM) || + (info->BiosConnector[1].ConnectorType == CONNECTOR_DVI_A_ATOM))) { + if (i > 0) + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "DVI-1"); + else + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "DVI-0"); + } else if ((info->BiosConnector[0].ConnectorType == CONNECTOR_VGA_ATOM) && + (info->BiosConnector[1].ConnectorType == CONNECTOR_VGA_ATOM)) { + if (i > 0) + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "VGA-1"); + else + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "VGA-0"); + } else + output = xf86OutputCreate(pScrn, &radeon_output_funcs, OutputType[radeon_output->type]); + } else { + if (((info->BiosConnector[0].ConnectorType == CONNECTOR_DVI_D) || + (info->BiosConnector[0].ConnectorType == CONNECTOR_DVI_I)) && + ((info->BiosConnector[1].ConnectorType == CONNECTOR_DVI_D) || + (info->BiosConnector[1].ConnectorType == CONNECTOR_DVI_I))) { + if (i > 0) + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "DVI-1"); + else + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "DVI-0"); + } else if ((info->BiosConnector[0].ConnectorType == CONNECTOR_CRT) && + (info->BiosConnector[1].ConnectorType == CONNECTOR_CRT)) { + if (i > 0) + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "VGA-1"); + else + output = xf86OutputCreate(pScrn, &radeon_output_funcs, "VGA-0"); + } else + output = xf86OutputCreate(pScrn, &radeon_output_funcs, OutputType[radeon_output->type]); + } + if (!output) { return FALSE; } |