diff options
author | Keith Packard <keithp@keithp.com> | 2008-12-15 19:53:45 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2008-12-15 20:12:33 -0800 |
commit | 09039fb89f3fd047f10b575e019bba6762448456 (patch) | |
tree | 0e720947bb114db2f5f20a66b222fd979251b1d2 /hw/xfree86/modes | |
parent | ae2cbbff9fa0f458e133bf1894d8a7f9fb3fbb72 (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.c | 6 |
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; |