|
|
596ad69 |
--- xf86-video-ati-6.6.1/src/radeon_driver.c.mtdriver 2006-08-24 18:52:37.000000000 -0400
|
|
|
596ad69 |
+++ xf86-video-ati-6.6.1/src/radeon_driver.c 2006-08-24 18:58:09.000000000 -0400
|
|
|
596ad69 |
@@ -3271,6 +3271,7 @@ static DisplayModePtr RADEONDDCModes(Scr
|
|
|
f71aa2c |
int j, tmp;
|
|
|
f71aa2c |
char stmp[32];
|
|
|
f71aa2c |
xf86MonPtr ddc = pScrn->monitor->DDC;
|
|
|
596ad69 |
+ int preferred = PREFERRED_TIMING_MODE(ddc->features.msc);
|
|
|
f71aa2c |
|
|
|
f71aa2c |
/* Go thru detailed timing table first */
|
|
|
f71aa2c |
for (j = 0; j < 4; j++) {
|
|
|
596ad69 |
@@ -3299,7 +3300,11 @@ static DisplayModePtr RADEONDDCModes(Scr
|
|
|
f71aa2c |
new->Clock = d_timings->clock / 1000;
|
|
|
f71aa2c |
new->Flags = (d_timings->interlaced ? V_INTERLACE : 0);
|
|
|
f71aa2c |
new->status = MODE_OK;
|
|
|
f71aa2c |
- new->type = M_T_DEFAULT;
|
|
|
f71aa2c |
+ new->type = M_T_DRIVER;
|
|
|
f71aa2c |
+ if (preferred) {
|
|
|
f71aa2c |
+ new->type |= M_T_PREFERRED;
|
|
|
f71aa2c |
+ preferred = 0;
|
|
|
f71aa2c |
+ }
|
|
|
f71aa2c |
|
|
|
f71aa2c |
if (d_timings->sync == 3) {
|
|
|
f71aa2c |
switch (d_timings->misc) {
|
|
|
596ad69 |
@@ -3337,7 +3342,7 @@ static DisplayModePtr RADEONDDCModes(Scr
|
|
|
f71aa2c |
new->name = xnfalloc(strlen(p->name) + 1);
|
|
|
f71aa2c |
strcpy(new->name, p->name);
|
|
|
f71aa2c |
new->status = MODE_OK;
|
|
|
f71aa2c |
- new->type = M_T_DEFAULT;
|
|
|
f71aa2c |
+ new->type = M_T_DRIVER;
|
|
|
f71aa2c |
|
|
|
f71aa2c |
count++;
|
|
|
f71aa2c |
|
|
|
596ad69 |
@@ -3369,7 +3374,7 @@ static DisplayModePtr RADEONDDCModes(Scr
|
|
|
f71aa2c |
new->name = xnfalloc(strlen(p->name) + 1);
|
|
|
f71aa2c |
strcpy(new->name, p->name);
|
|
|
f71aa2c |
new->status = MODE_OK;
|
|
|
f71aa2c |
- new->type = M_T_DEFAULT;
|
|
|
f71aa2c |
+ new->type = M_T_DRIVER;
|
|
|
f71aa2c |
|
|
|
f71aa2c |
count++;
|
|
|
f71aa2c |
|
|
|
596ad69 |
@@ -3706,7 +3711,7 @@ static int RADEONValidateFPModes(ScrnInf
|
|
|
f71aa2c |
new->Clock = info->DotClock;
|
|
|
f71aa2c |
new->Flags |= RADEON_USE_RMX;
|
|
|
f71aa2c |
|
|
|
f71aa2c |
- new->type |= M_T_DEFAULT;
|
|
|
f71aa2c |
+ new->type |= M_T_DRIVER;
|
|
|
f71aa2c |
|
|
|
f71aa2c |
new->next = NULL;
|
|
|
f71aa2c |
new->prev = last;
|
|
|
596ad69 |
@@ -3888,6 +3893,9 @@ static int RADEONValidateMergeModes(Scrn
|
|
|
f71aa2c |
* 'stretched' from their native mode.
|
|
|
f71aa2c |
*/
|
|
|
f71aa2c |
if (info->MergeType == MT_CRT && !info->ddc_mode) {
|
|
|
f71aa2c |
+
|
|
|
f71aa2c |
+ if (pScrn->monitor->DDC)
|
|
|
f71aa2c |
+ xf86SetDDCproperties(pScrn, pScrn->monitor->DDC);
|
|
|
f71aa2c |
|
|
|
f71aa2c |
modesFound =
|
|
|
f71aa2c |
xf86ValidateModes(pScrn,
|
|
|
596ad69 |
@@ -4154,6 +4162,9 @@ static Bool RADEONPreInitModes(ScrnInfoP
|
|
|
f71aa2c |
*/
|
|
|
f71aa2c |
if (info->DisplayType == MT_CRT && !info->ddc_mode) {
|
|
|
f71aa2c |
|
|
|
f71aa2c |
+ if (pScrn->monitor->DDC)
|
|
|
f71aa2c |
+ xf86SetDDCproperties(pScrn, pScrn->monitor->DDC);
|
|
|
f71aa2c |
+
|
|
|
f71aa2c |
modesFound =
|
|
|
f71aa2c |
xf86ValidateModes(pScrn,
|
|
|
f71aa2c |
pScrn->monitor->Modes,
|