xf86-video-intel: src/sna/sna_display.c src/sna/sna_driver.c src/sna/sna.h
Chris Wilson
ickle at kemper.freedesktop.org
Thu Jun 14 11:20:43 PDT 2012
src/sna/sna.h | 1 +
src/sna/sna_display.c | 15 +++++++++++++--
src/sna/sna_driver.c | 2 ++
3 files changed, 16 insertions(+), 2 deletions(-)
New commits:
commit 3a56a0b10eb3ab07efd28efdc79d0fd3a6fa20ff
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Jun 14 19:26:42 2012 +0100
sna: Make the disable-unused after vt switch distinct from DPMS off
So that we do not lose control over dpms on/off!
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna.h b/src/sna/sna.h
index ce06e4d..a426e69 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -304,6 +304,7 @@ Bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna);
void sna_mode_adjust_frame(struct sna *sna, int x, int y);
extern void sna_mode_remove_fb(struct sna *sna);
extern void sna_mode_update(struct sna *sna);
+extern void sna_mode_disable_unused(struct sna *sna);
extern void sna_mode_fini(struct sna *sna);
extern int sna_crtc_id(xf86CrtcPtr crtc);
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index a198b5c..de834ae 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -515,9 +515,20 @@ sna_crtc_dpms(xf86CrtcPtr crtc, int mode)
{
DBG(("%s(pipe %d, dpms mode -> %d):= active=%d\n",
__FUNCTION__, to_sna_crtc(crtc)->pipe, mode, mode == DPMSModeOn));
+}
+
+void sna_mode_disable_unused(struct sna *sna)
+{
+ xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(sna->scrn);
+ int i;
- if (mode == DPMSModeOff)
- sna_crtc_disable(crtc);
+ DBG(("%s\n", __FUNCTION__));
+
+ /* Force consistency between kernel and ourselves */
+ for (i = 0; i < xf86_config->num_crtc; i++) {
+ if (!xf86_config->crtc[i]->enabled)
+ sna_crtc_disable(xf86_config->crtc[i]);
+ }
}
static struct kgem_bo *sna_create_bo_for_fbcon(struct sna *sna,
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 2fa6adc..76ae24e 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -988,6 +988,8 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL)
xf86DrvMsg(scrn->scrnIndex, X_WARNING,
"failed to restore desired modes on VT switch\n");
+ sna_mode_disable_unused(sna);
+
return TRUE;
}
More information about the xorg-commit
mailing list