summaryrefslogtreecommitdiff
path: root/hw/xfree86/modes
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2008-12-15 19:53:45 -0800
committerKeith Packard <keithp@keithp.com>2008-12-15 20:12:33 -0800
commit09039fb89f3fd047f10b575e019bba6762448456 (patch)
tree0e720947bb114db2f5f20a66b222fd979251b1d2 /hw/xfree86/modes
parentae2cbbff9fa0f458e133bf1894d8a7f9fb3fbb72 (diff)
Patch brown-bag fix for bug 19017 (scrn->virtualX/virtualY 0 before PreInit)
When a driver uses a crtc during device detection, the scrn has not yet been configured and virtualX/virtualY are still zero. This caused the X server to try and allocate a shadow frame buffer, which couldn't work. Detect this by checking for zero virtualX/virtualY values. Signed-off-by: Keith Packard <keithp@keithp.com> (cherry picked from commit 063eb6743cd0d98dd52d1a9559b804381ee5144d)
Diffstat (limited to 'hw/xfree86/modes')
-rw-r--r--hw/xfree86/modes/xf86Rotate.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 88b4bdc84..65a553e85 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -366,6 +366,12 @@ xf86CrtcFitsScreen (xf86CrtcPtr crtc, struct pict_f_transform *crtc_to_fb)
ScrnInfoPtr pScrn = crtc->scrn;
BoxRec b;
+ /* When called before PreInit, the driver is
+ * presumably doing load detect
+ */
+ if (pScrn->virtualX == 0 || pScrn->virtualY == 0)
+ return TRUE;
+
b.x1 = 0;
b.y1 = 0;
b.x2 = crtc->mode.HDisplay;