summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/i830_display.c4
-rw-r--r--src/i830_driver.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/src/i830_display.c b/src/i830_display.c
index 39a535bd..2358f193 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -1738,6 +1738,7 @@ ironlake_crtc_enable(xf86CrtcPtr crtc)
ErrorF("DPMS on done\n");
+ i830_modeset_ctl(crtc, 0);
}
void
@@ -1760,6 +1761,8 @@ ironlake_crtc_disable(xf86CrtcPtr crtc)
uint32_t temp, pipe_bpc;
int n;
+ i830_modeset_ctl(crtc, 1);
+
temp = INREG(pipeconf_reg);
pipe_bpc = temp & PIPE_BPC_MASK;
@@ -1920,6 +1923,7 @@ static void igdng_crtc_dpms(xf86CrtcPtr crtc, int mode)
break;
case DPMSModeOff:
ironlake_crtc_disable(crtc);
+ intel_crtc->enabled = FALSE;
break;
}
}
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 352a3413..1aa7f19e 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -3007,7 +3007,10 @@ static Bool I830EnterVT(int scrnIndex, int flags)
/* Disable pipes */
for (i = 0; i < xf86_config->num_crtc; i++) {
xf86CrtcPtr crtc = xf86_config->crtc[i];
- i830_crtc_disable(crtc, TRUE);
+ if (IS_IGDNG(intel))
+ ironlake_crtc_disable(crtc);
+ else
+ i830_crtc_disable(crtc, TRUE);
}
i830WaitForVblank(scrn);
}