summaryrefslogtreecommitdiff
path: root/src/i830_driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/i830_driver.c')
-rw-r--r--src/i830_driver.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 0ea20e4c..5da47424 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3304,12 +3304,33 @@ I830EnterVT(int scrnIndex, int flags)
ResetState(pScrn, FALSE);
SetHWOperatingState(pScrn);
- /* Mark that we'll need to re-set the mode for sure */
for (i = 0; i < pI830->num_pipes; i++)
- memset(&pI830->pipes[i].curMode, 0, sizeof(pI830->pipes[i].curMode));
+ {
+ I830PipePtr pipe = &pI830->pipes[i];
+ /* Mark that we'll need to re-set the mode for sure */
+ memset(&pipe->curMode, 0, sizeof(pipe->curMode));
+ if (!pipe->desiredMode.CrtcHDisplay)
+ {
+ pipe->desiredMode = *i830PipeFindClosestMode (pScrn, i,
+ pScrn->currentMode);
+ }
+ if (!i830PipeSetMode (pScrn, &pipe->desiredMode, i, TRUE))
+ return FALSE;
+ i830PipeSetBase(pScrn, i, pipe->x, pipe->y);
+ }
+
+ i830DisableUnusedFunctions(pScrn);
+
+ i830DescribeOutputConfiguration(pScrn);
+#ifdef XF86DRI
+ I830DRISetVBlankInterrupt (pScrn, TRUE);
+#endif
+
+#if 0
if (!i830SetMode(pScrn, pScrn->currentMode))
return FALSE;
+#endif
#ifdef I830_XV
I830VideoSwitchModeAfter(pScrn, pScrn->currentMode);