From bf6fef41935ebf624cc1ae6faa084dfa0a7eee72 Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Tue, 6 Sep 2005 10:23:57 +0000 Subject: Sync the accelerator before calling AdjustFrame to avoid lockups. --- src/i830_driver.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i830_driver.c b/src/i830_driver.c index 2eb3b4fd..f4d5f229 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -4863,6 +4863,10 @@ I830BIOSAdjustFrame(int scrnIndex, int x, int y, int flags) DPRINTF(PFX, "I830BIOSAdjustFrame: y = %d (+ %d), x = %d (+ %d)\n", x, pI830->xoffset, y, pI830->yoffset); + /* Sync the engine before adjust frame */ + if (!pI830->noAccel) + (*pI830->AccelInfoRec->Sync)(pScrn); + /* The i830M just happens to have some problems programming offsets via * this VESA BIOS call. Especially in dual head configurations which * have high resolutions which cause the DSP{A,B}BASE registers to be @@ -5319,7 +5323,7 @@ I830BIOSSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) DPRINTF(PFX, "I830BIOSSwitchMode: mode == %p\n", mode); - /* Stops head pointer freezes for 845G */ + /* Sync the engine before mode switch */ if (!pI830->noAccel) (*pI830->AccelInfoRec->Sync)(pScrn); -- cgit v1.2.3