diff options
author | Alex Deucher <alex@botch2.(none)> | 2007-11-21 00:05:42 -0500 |
---|---|---|
committer | Alex Deucher <alex@botch2.(none)> | 2007-11-21 00:05:42 -0500 |
commit | 908748343fc9a6cdc38af0fc028c63a82766da3f (patch) | |
tree | 341f245f7f6d9cd38af448ec563c9665e88df7a2 | |
parent | 3975da2ea8cb628f7f66c3f26c5dfa181cd1c532 (diff) |
RADEON: store devices ids from bios for each driver output
-rw-r--r-- | src/radeon_bios.c | 3 | ||||
-rw-r--r-- | src/radeon_output.c | 2 | ||||
-rw-r--r-- | src/radeon_probe.h | 2 |
3 files changed, 7 insertions, 0 deletions
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 |