hi friends,
this enables vt switching on my laptop (dell xps 13) with
sandybridge video:
vga1 at pci0 dev 2 function 0 "Intel GT2 Video" rev 0x09
previously it would do nothing on ctrl+alt+f1 and redraw the screen
on ctrl+alt+f5. now i am able to switch between the console and X
multiple times without any problems or artifacts.
can i get some tests on other sandybridge systems like an x220 and
on non-sandybridge intel video machines?
diff --git a/driver/xf86-video-intel/src/intel_driver.c
b/driver/xf86-video-intel/src/intel_driver.c
index 03b1586..8f04695 100644
--- a/driver/xf86-video-intel/src/intel_driver.c
+++ b/driver/xf86-video-intel/src/intel_driver.c
@@ -1552,7 +1552,7 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
if (!intel->use_drm_mode) {
/* console hack, stolen from G80 */
- if (IS_GEN5(intel)) {
+ if (IS_GEN5(intel) || HAS_PCH_SPLIT(intel)) {
if (xf86LoadSubModule(scrn, "int10")) {
intel->int10 = xf86InitInt10(pEnt->index);
if (intel->int10) {
@@ -1779,9 +1779,6 @@ static Bool RestoreHWState(ScrnInfoPtr scrn)
vgaRegPtr vgaReg = &hwp->SavedReg;
int i;
- if (HAS_PCH_SPLIT(intel))
- return TRUE;
-
DPRINTF(PFX, "RestoreHWState\n");
/* Disable outputs */
@@ -2600,7 +2597,8 @@ static void I830LeaveVT(int scrnIndex, int flags)
RestoreHWState(scrn);
/* console restore hack */
- if (IS_GEN5(intel) && intel->int10 && intel->int10Mode) {
+ if ((IS_GEN5(intel) || HAS_PCH_SPLIT(intel)) &&
+ intel->int10 && intel->int10Mode) {
xf86Int10InfoPtr int10 = intel->int10;
/* Use int10 to restore the console mode */
@@ -2610,7 +2608,6 @@ static void I830LeaveVT(int scrnIndex, int flags)
int10->cx = int10->dx = 0;
xf86ExecX86int10(int10);
}
-
}
i830_unbind_all_memory(scrn);