From 908748343fc9a6cdc38af0fc028c63a82766da3f Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Wed, 21 Nov 2007 00:05:42 -0500 Subject: RADEON: store devices ids from bios for each driver output --- src/radeon_bios.c | 3 +++ src/radeon_output.c | 2 ++ src/radeon_probe.h | 2 ++ 3 files changed, 7 insertions(+) diff --git a/src/radeon_bios.c b/src/radeon_bios.c index ac2495fa..373659ad 100644 --- a/src/radeon_bios.c +++ b/src/radeon_bios.c @@ -236,6 +236,7 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) info->BiosConnector[i].ddc_line = gpio; info->BiosConnector[i].output_id = id; + info->BiosConnector[i].devices = (1 << i); if (i == ATOM_DEVICE_DFP1_INDEX) info->BiosConnector[i].TMDSType = TMDS_INT; @@ -277,12 +278,14 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn) (i == ATOM_DEVICE_DFP3_INDEX)) && ((j == ATOM_DEVICE_CRT1_INDEX) || (j == ATOM_DEVICE_CRT2_INDEX))) { info->BiosConnector[i].DACType = info->BiosConnector[j].DACType; + info->BiosConnector[i].devices |= info->BiosConnector[j].devices; info->BiosConnector[j].valid = FALSE; } else if (((j == ATOM_DEVICE_DFP1_INDEX) || (j == ATOM_DEVICE_DFP2_INDEX) || (j == ATOM_DEVICE_DFP3_INDEX)) && ((i == ATOM_DEVICE_CRT1_INDEX) || (i == ATOM_DEVICE_CRT2_INDEX))) { info->BiosConnector[j].DACType = info->BiosConnector[i].DACType; + info->BiosConnector[j].devices |= info->BiosConnector[i].devices; info->BiosConnector[i].valid = FALSE; } /* other possible combos? */ diff --git a/src/radeon_output.c b/src/radeon_output.c index a824e5ba..678e4d7a 100644 --- a/src/radeon_output.c +++ b/src/radeon_output.c @@ -3134,7 +3134,9 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn) radeon_output->MonType = MT_UNKNOWN; radeon_output->ConnectorType = info->BiosConnector[i].ConnectorType; radeon_output->ddc_line = info->BiosConnector[i].ddc_line; + radeon_output->devices = info->BiosConnector[i].devices; radeon_output->output_id = info->BiosConnector[i].output_id; + if (radeon_output->ConnectorType == CONNECTOR_DVI_D) radeon_output->DACType = DAC_NONE; else diff --git a/src/radeon_probe.h b/src/radeon_probe.h index bfc352f3..c1a79133 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -195,6 +195,7 @@ typedef struct { RADEONConnectorType ConnectorType; Bool valid; int output_id; + int devices; } RADEONBIOSConnector; typedef struct _RADEONOutputPrivateRec { @@ -243,6 +244,7 @@ typedef struct _RADEONOutputPrivateRec { char *name; int output_id; + int devices; } RADEONOutputPrivateRec, *RADEONOutputPrivatePtr; #define RADEON_MAX_CRTC 2 -- cgit v1.2.3