summaryrefslogtreecommitdiffstats
path: root/meta/packages/xorg-driver/xf86-video-intel-dri2/004_reduce_driver_boottime.patch
blob: 97921223d0b344ee417f6ca9207a78943bd9c684 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
diff --git a/src/i830_display.c b/src/i830_display.c
index 95ce51e..2c49b43 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -376,7 +376,7 @@ void
 i830WaitForVblank(ScrnInfoPtr pScreen)
 {
     /* Wait for 20ms, i.e. one cycle at 50hz. */
-    usleep(30000);
+    usleep(21000);
 }
 
 void
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 6cd30b2..223967f 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2303,7 +2303,7 @@ SaveHWState(ScrnInfoPtr pScrn)
 static void
 i830_dpll_settle(void)
 {
-    usleep(10000); /* 10 ms *should* be plenty */
+    usleep(150); /* 10 ms *should* be plenty */
 }
 
 static Bool
@@ -2325,14 +2325,12 @@ RestoreHWState(ScrnInfoPtr pScrn)
       xf86OutputPtr   output = xf86_config->output[i];
       output->funcs->dpms(output, DPMSModeOff);
    }
-   i830WaitForVblank(pScrn);
    
    /* Disable pipes */
    for (i = 0; i < xf86_config->num_crtc; i++) {
       xf86CrtcPtr crtc = xf86_config->crtc[i];
       crtc->funcs->dpms(crtc, DPMSModeOff);
    }
-   i830WaitForVblank(pScrn);
 
    if (IS_MOBILE(pI830) && !IS_I830(pI830))
       OUTREG(LVDS, pI830->saveLVDS);
@@ -2422,13 +2420,11 @@ RestoreHWState(ScrnInfoPtr pScrn)
        DISPPLANE_SEL_PIPE_A) {
        OUTREG(DSPACNTR, pI830->saveDSPACNTR);
        OUTREG(DSPABASE, INREG(DSPABASE));
-       i830WaitForVblank(pScrn);
    }
    if ((pI830->saveDSPBCNTR & DISPPLANE_SEL_PIPE_MASK) ==
        DISPPLANE_SEL_PIPE_A) {
        OUTREG(DSPBCNTR, pI830->saveDSPBCNTR);
        OUTREG(DSPBBASE, INREG(DSPBBASE));
-       i830WaitForVblank(pScrn);
    }
 
    /* See note about pipe programming above */
@@ -2484,13 +2480,11 @@ RestoreHWState(ScrnInfoPtr pScrn)
 	  DISPPLANE_SEL_PIPE_B) {
 	  OUTREG(DSPACNTR, pI830->saveDSPACNTR);
 	  OUTREG(DSPABASE, INREG(DSPABASE));
-	  i830WaitForVblank(pScrn);
       }
       if ((pI830->saveDSPBCNTR & DISPPLANE_SEL_PIPE_MASK) ==
 	  DISPPLANE_SEL_PIPE_B) {
 	  OUTREG(DSPBCNTR, pI830->saveDSPBCNTR);
 	  OUTREG(DSPBBASE, INREG(DSPBBASE));
-	  i830WaitForVblank(pScrn);
       }
    }