diff options
author | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-05-13 14:25:03 -0400 |
---|---|---|
committer | Alex Deucher <alex@t41p.hsd1.va.comcast.net> | 2007-05-13 14:25:03 -0400 |
commit | 66e8e6c8348d007930730e90295588efe8108844 (patch) | |
tree | 936ced10aba22811a5ae5a151bc1ebdc8425b31e | |
parent | 1c16c2ce9c5b02b03d23da965127d82eea4c4039 (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.c | 11 | ||||
-rw-r--r-- | src/radeon_modes.c | 54 |
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; } |