summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2007-11-21 00:05:42 -0500
committerAlex Deucher <alex@botch2.(none)>2007-11-21 00:05:42 -0500
commit908748343fc9a6cdc38af0fc028c63a82766da3f (patch)
tree341f245f7f6d9cd38af448ec563c9665e88df7a2
parent3975da2ea8cb628f7f66c3f26c5dfa181cd1c532 (diff)
RADEON: store devices ids from bios for each driver output
-rw-r--r--src/radeon_bios.c3
-rw-r--r--src/radeon_output.c2
-rw-r--r--src/radeon_probe.h2
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