summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-06-04 20:22:15 -0400
committerAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-06-04 20:22:15 -0400
commitbe0ce38232ea4f5679c5829ab663939144c6e617 (patch)
treebd97c8681ed8b83bb5b400a087abcf3ddb40f791
parent8ec617f6493dd0aea5d11f92e3d58c3feef8c8fd (diff)
RADEON: number the outputs if there are more than one of the same
-rw-r--r--src/radeon_output.c39
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;
}