On Fri, Mar 02, 2012 at 09:27:52PM -0600, joshua stein wrote:
> 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);
> 

Works fine on X201(Core i5-540M).

-- 
Alexandr Shadchin

Reply via email to