diff options
author | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2006-07-11 07:40:40 +0100 |
---|---|---|
committer | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2006-07-11 07:40:40 +0100 |
commit | 584b544987be5cf23dce29ddaf3130e59cfe6fa8 (patch) | |
tree | 928e147c91bab3f4fa545245a20b40a965d5aa96 /src | |
parent | 5a1b68993f3a3a2e8dcd428a7118e29c36703cd6 (diff) |
Add an additional check before rotating
Diffstat (limited to 'src')
-rw-r--r-- | src/i830_driver.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c index 80a46a47..e55e421d 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -955,6 +955,8 @@ I830Set640x480(ScrnInfoPtr pScrn) if (VBESetVBEMode(pI830->pVbe, m, NULL)) return TRUE; + ErrorF("Set640x480 failed1\n"); + /* if the first failed, let's try the next - usually 800x600 */ m = 0x32; switch (pScrn->depth) { @@ -970,6 +972,8 @@ I830Set640x480(ScrnInfoPtr pScrn) if (VBESetVBEMode(pI830->pVbe, m, NULL)) return TRUE; + ErrorF("Set640x480 failed2\n"); + return FALSE; } @@ -5572,6 +5576,10 @@ I830BIOSEnterVT(int scrnIndex, int flags) pI830->leaving = FALSE; + /* Detect monitor change and switch to suitable mode */ + if (!pI830->starting) + I830DetectMonitorChange(pScrn); + #if 1 /* Clear the framebuffer */ memset(pI830->FbBase + pScrn->fbOffset, 0, @@ -5630,9 +5638,11 @@ I830BIOSEnterVT(int scrnIndex, int flags) ResetState(pScrn, FALSE); SetHWOperatingState(pScrn); +#if 0 /* Detect monitor change and switch to suitable mode */ if (!pI830->starting) I830DetectMonitorChange(pScrn); +#endif if (!I830VESASetMode(pScrn, pScrn->currentMode)) return FALSE; @@ -5718,7 +5728,7 @@ I830BIOSSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) * The extra WindowTable check detects a rotation at startup. */ if ( (!WindowTable[pScrn->scrnIndex] || pspix->devPrivate.ptr == NULL) && - !pI830->DGAactive ) { + !pI830->DGAactive && (pScrn->PointerMoved == I830PointerMoved) ) { if (!I830Rotate(pScrn, mode)) ret = FALSE; } |