xf86: call enter/leave VT for gpu screens as well
Otherwise we can't do fast user switch properly for multiple GPUs. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
		
							parent
							
								
									18deac48db
								
							
						
					
					
						commit
						0db936a5b7
					
				| 
						 | 
				
			
			@ -460,6 +460,8 @@ xf86VTSwitch(void)
 | 
			
		|||
        OsBlockSIGIO();
 | 
			
		||||
        for (i = 0; i < xf86NumScreens; i++)
 | 
			
		||||
            xf86Screens[i]->LeaveVT(xf86Screens[i]);
 | 
			
		||||
        for (i = 0; i < xf86NumGPUScreens; i++)
 | 
			
		||||
            xf86GPUScreens[i]->LeaveVT(xf86GPUScreens[i]);
 | 
			
		||||
 | 
			
		||||
        xf86AccessLeave();      /* We need this here, otherwise */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -474,6 +476,10 @@ xf86VTSwitch(void)
 | 
			
		|||
                if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
 | 
			
		||||
                    FatalError("EnterVT failed for screen %d\n", i);
 | 
			
		||||
            }
 | 
			
		||||
            for (i = 0; i < xf86NumGPUScreens; i++) {
 | 
			
		||||
                if (!xf86GPUScreens[i]->EnterVT(xf86GPUScreens[i]))
 | 
			
		||||
                    FatalError("EnterVT failed for gpu screen %d\n", i);
 | 
			
		||||
            }
 | 
			
		||||
            if (!(dispatchException & DE_TERMINATE)) {
 | 
			
		||||
                for (i = 0; i < xf86NumScreens; i++) {
 | 
			
		||||
                    if (xf86Screens[i]->EnableDisableFBAccess)
 | 
			
		||||
| 
						 | 
				
			
			@ -530,6 +536,11 @@ xf86VTSwitch(void)
 | 
			
		|||
            if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
 | 
			
		||||
                FatalError("EnterVT failed for screen %d\n", i);
 | 
			
		||||
        }
 | 
			
		||||
        for (i = 0; i < xf86NumGPUScreens; i++) {
 | 
			
		||||
            xf86GPUScreens[i]->vtSema = TRUE;
 | 
			
		||||
            if (!xf86GPUScreens[i]->EnterVT(xf86GPUScreens[i]))
 | 
			
		||||
                FatalError("EnterVT failed for gpu screen %d\n", i);
 | 
			
		||||
        }
 | 
			
		||||
        for (i = 0; i < xf86NumScreens; i++) {
 | 
			
		||||
            if (xf86Screens[i]->EnableDisableFBAccess)
 | 
			
		||||
                (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], TRUE);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue