diff options
author | agd5f <agd5f> | 2003-11-03 00:17:16 +0000 |
---|---|---|
committer | agd5f <agd5f> | 2003-11-03 00:17:16 +0000 |
commit | 341068306370dda8113fb1ea68eecfdad91ec23b (patch) | |
tree | ac0013d22d1fde71102fe44196bff73f12d70264 | |
parent | 598f22a55dcdbffa404f4f85bd029400387282b3 (diff) |
Allow modes larger than crtc1 on crtc2 when no virtual desktop is defined.
-rw-r--r-- | xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c index d8ac4e057..3a9d9f943 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c @@ -3138,6 +3138,11 @@ static int RADEONValidateMergeModes(ScrnInfoPtr pScrn1) pScrn->maxVValue = pScrn1->maxVValue; pScrn->xInc = pScrn1->xInc; + if (info->NoVirtual) { + pScrn1->display->virtualX = 0; + pScrn1->display->virtualY = 0; + } + if (pScrn->monitor->DDC) { /* If we still don't know sync range yet, let's try EDID. * @@ -3160,8 +3165,8 @@ static int RADEONValidateMergeModes(ScrnInfoPtr pScrn1) clockRanges->minClock = info->pll.min_pll_freq; clockRanges->maxClock = info->pll.max_pll_freq * 10; clockRanges->clockIndex = -1; - clockRanges->interlaceAllowed = (info->DisplayType == MT_CRT); - clockRanges->doubleScanAllowed = (info->DisplayType == MT_CRT); + clockRanges->interlaceAllowed = (info->MergeType == MT_CRT); + clockRanges->doubleScanAllowed = (info->MergeType == MT_CRT); /* We'll use our own mode validation routine for DFP/LCD, since * xf86ValidateModes does not work correctly with the DFP/LCD modes @@ -3180,8 +3185,8 @@ static int RADEONValidateMergeModes(ScrnInfoPtr pScrn1) 64 * pScrn1->bitsPerPixel, /* pitchInc */ 128, /* minHeight */ 2048, /* maxHeight */ - pScrn1->display->virtualX, - pScrn1->display->virtualY, + pScrn1->display->virtualX ? pScrn1->virtualX : 0, + pScrn1->display->virtualY ? pScrn1->virtualY : 0, info->FbMapSize, LOOKUP_BEST_REFRESH); @@ -7390,6 +7395,7 @@ RADEONGetMergedFBOptions(ScrnInfoPtr pScrn) /* memcpy(info->CRT2pScrn->monitor, pScrn->monitor, sizeof(MonRec)); */ info->CRT2pScrn->monitor->DDC = NULL; info->CRT2pScrn->monitor->Modes = NULL; + info->CRT2pScrn->monitor->id = "CRT2 Monitor"; tempm = pScrn->monitor->Modes; while(tempm) { if(!(newm = xalloc(sizeof(DisplayModeRec)))) break; @@ -7409,6 +7415,7 @@ RADEONGetMergedFBOptions(ScrnInfoPtr pScrn) tempm = tempm->next; } + /* xf86SetDDCproperties(info->CRT2pScrn, pRADEONEnt->MonInfo2); */ info->CRT2pScrn->monitor->DDC = pRADEONEnt->MonInfo2; if (default_range) { RADEONStrToRanges(info->CRT2pScrn->monitor->hsync, default_hsync, MAX_HSYNC); |