summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-05-13 14:25:03 -0400
committerAlex Deucher <alex@t41p.hsd1.va.comcast.net>2007-05-13 14:25:03 -0400
commit66e8e6c8348d007930730e90295588efe8108844 (patch)
tree936ced10aba22811a5ae5a151bc1ebdc8425b31e
parent1c16c2ce9c5b02b03d23da965127d82eea4c4039 (diff)
RADEON: several fixes
- give better DDC names - disable DAC if connector is DVI-D - fix indentation in ProbeDDCModes()
-rw-r--r--src/radeon_display.c11
-rw-r--r--src/radeon_modes.c54
2 files changed, 34 insertions, 31 deletions
diff --git a/src/radeon_display.c b/src/radeon_display.c
index 779e8aba..cafcb0e4 100644
--- a/src/radeon_display.c
+++ b/src/radeon_display.c
@@ -2473,7 +2473,7 @@ void RADEONInitConnector(xf86OutputPtr output)
ScrnInfoPtr pScrn = output->scrn;
RADEONOutputPrivatePtr radeon_output = output->driver_private;
int DDCReg = 0;
- char* name = "DDC Bus";//OutputType[radeon_output->type];
+ char* name = OutputType[radeon_output->type];
switch(radeon_output->DDCType) {
case DDC_MONID: DDCReg = RADEON_GPIO_MONID; break;
@@ -2732,10 +2732,15 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
return FALSE;
}
radeon_output->MonType = MT_UNKNOWN;
+ radeon_output->ConnectorType = info->BiosConnector[i].ConnectorType;
+ if ((info->IsAtomBios && radeon_output->ConnectorType == CONNECTOR_DVI_D_ATOM) ||
+ radeon_output->ConnectorType == CONNECTOR_DVI_D)
+ radeon_output->DACType = DAC_UNKNOWN;
+ else
+ radeon_output->DACType = info->BiosConnector[i].DACType;
radeon_output->DDCType = info->BiosConnector[i].DDCType;
- radeon_output->DACType = info->BiosConnector[i].DACType;
radeon_output->TMDSType = info->BiosConnector[i].TMDSType;
- radeon_output->ConnectorType = info->BiosConnector[i].ConnectorType;
+
RADEONSetOutputType(pScrn, radeon_output);
output = xf86OutputCreate(pScrn, &radeon_output_funcs, OutputType[radeon_output->type]);
if (!output) {
diff --git a/src/radeon_modes.c b/src/radeon_modes.c
index 45558569..bc069eab 100644
--- a/src/radeon_modes.c
+++ b/src/radeon_modes.c
@@ -284,45 +284,43 @@ RADEONProbeOutputModes(xf86OutputPtr output)
if (radeon_output->type == OUTPUT_DVI || radeon_output->type == OUTPUT_VGA) {
- edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus);
- xf86OutputSetEDID (output, edid_mon);
+ edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus);
+ xf86OutputSetEDID (output, edid_mon);
- modes = xf86OutputGetEDIDModes (output);
- return modes;
+ modes = xf86OutputGetEDIDModes (output);
+ return modes;
}
if (radeon_output->type == OUTPUT_LVDS) {
- /* okay we got DDC info */
- if (output->MonInfo) {
- /* Debug info for now, at least */
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EDID for output %d\n", radeon_output->num);
- xf86PrintEDID(output->MonInfo);
+ /* okay we got DDC info */
+ if (output->MonInfo) {
+ /* Debug info for now, at least */
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EDID for output %d\n", radeon_output->num);
+ xf86PrintEDID(output->MonInfo);
- modes = xf86DDCGetModes(pScrn->scrnIndex, output->MonInfo);
+ modes = xf86DDCGetModes(pScrn->scrnIndex, output->MonInfo);
- for (mode = modes; mode != NULL; mode = mode->next) {
- if (mode->Flags & V_DBLSCAN) {
- if ((mode->CrtcHDisplay >= 1024) || (mode->CrtcVDisplay >= 768))
- mode->status = MODE_CLOCK_RANGE;
- }
- }
- xf86PruneInvalidModes(pScrn, &modes, TRUE);
+ for (mode = modes; mode != NULL; mode = mode->next) {
+ if (mode->Flags & V_DBLSCAN) {
+ if ((mode->CrtcHDisplay >= 1024) || (mode->CrtcVDisplay >= 768))
+ mode->status = MODE_CLOCK_RANGE;
+ }
+ }
+ xf86PruneInvalidModes(pScrn, &modes, TRUE);
- /* do some physcial size stuff */
- }
-
+ /* do some physcial size stuff */
+ }
- if (modes == NULL) {
- MonRec fixed_mon;
-
- RADEONValidateFPModes(output, pScrn->display->modes, &modes);
- }
+ if (modes == NULL) {
+ RADEONValidateFPModes(output, pScrn->display->modes, &modes);
+ }
}
if (modes) {
- xf86ValidateModesUserConfig(pScrn, modes);
- xf86PruneInvalidModes(pScrn, &modes,
- FALSE);
+ xf86ValidateModesUserConfig(pScrn, modes);
+ xf86PruneInvalidModes(pScrn, &modes,
+ FALSE);
}
+
return modes;
}