diff --git a/src/i830_driver.c b/src/i830_driver.c index d5b260c..c62ecf6 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -820,6 +820,9 @@ i830_update_front_offset(ScrnInfoPtr pScrn) * yet. We'll fix it up at CreateScreenResources. */ if (!pI830->starting) { + I830SelectBuffer(pScrn, I830_SELECT_FRONT); + pI830->xoffset = (pScrn->fbOffset / pI830->cpp) % pScrn->displayWidth; + pI830->yoffset = (pScrn->fbOffset / pI830->cpp) / pScrn->displayWidth; if (!pScreen->ModifyPixmapHeader(pScreen->GetScreenPixmap(pScreen), -1, -1, -1, -1, -1, (pointer)(pI830->FbBase + @@ -3557,7 +3560,7 @@ I830CheckDevicesTimer(OsTimerPtr timer, CARD32 now, pointer arg) xf86ProbeOutputModes (pScrn, 0, 0); xf86SetScrnInfoModes (pScrn); xf86DiDGAReInit (pScrn->pScreen); - xf86SwitchMode(pScrn->pScreen, pScrn->currentMode); + xf86SetDesiredModes (pScrn); /* Clear the BIOS's hotkey press flags */ gr18 &= ~(HOTKEY_TOGGLE | HOTKEY_SWITCH);