summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoragd5f <agd5f>2003-11-03 00:17:16 +0000
committeragd5f <agd5f>2003-11-03 00:17:16 +0000
commit341068306370dda8113fb1ea68eecfdad91ec23b (patch)
treeac0013d22d1fde71102fe44196bff73f12d70264
parent598f22a55dcdbffa404f4f85bd029400387282b3 (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.c15
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);