vmware/xorg: Stop video ports on leave vt
This commit is contained in:
parent
f2e3fc1814
commit
124f4bc977
|
@ -66,6 +66,8 @@ Bool vmw_video_init(ScrnInfoPtr pScrn, struct vmw_driver *vmw);
|
|||
|
||||
Bool vmw_video_close(ScrnInfoPtr pScrn, struct vmw_driver *vmw);
|
||||
|
||||
void vmw_video_stop_all(ScrnInfoPtr pScrn, struct vmw_driver *vmw);
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* vmw_ioctl.c
|
||||
|
|
|
@ -124,6 +124,26 @@ vmw_screen_close(ScrnInfoPtr pScrn)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static Bool
|
||||
vmw_screen_enter_vt(ScrnInfoPtr pScrn)
|
||||
{
|
||||
debug_printf("%s: enter\n", __func__);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static Bool
|
||||
vmw_screen_leave_vt(ScrnInfoPtr pScrn)
|
||||
{
|
||||
struct vmw_driver *vmw = vmw_driver(pScrn);
|
||||
|
||||
debug_printf("%s: enter\n", __func__);
|
||||
|
||||
vmw_video_stop_all(pScrn, vmw);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Functions for setting up hooks into the xorg state tracker
|
||||
*/
|
||||
|
@ -142,6 +162,8 @@ vmw_screen_pre_init(ScrnInfoPtr pScrn, int flags)
|
|||
ms = modesettingPTR(pScrn);
|
||||
ms->winsys_screen_init = vmw_screen_init;
|
||||
ms->winsys_screen_close = vmw_screen_close;
|
||||
ms->winsys_enter_vt = vmw_screen_enter_vt;
|
||||
ms->winsys_leave_vt = vmw_screen_leave_vt;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -358,6 +358,38 @@ vmw_video_close(ScrnInfoPtr pScrn, struct vmw_driver *vmw)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
* vmw_video_stop_all --
|
||||
*
|
||||
* Stop all video streams from playing.
|
||||
*
|
||||
* Results:
|
||||
* None.
|
||||
*
|
||||
* Side effects:
|
||||
* All buffers are freed.
|
||||
*
|
||||
*-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void vmw_video_stop_all(ScrnInfoPtr pScrn, struct vmw_driver *vmw)
|
||||
{
|
||||
struct vmw_video_private *video = vmw->video_priv;
|
||||
int i;
|
||||
|
||||
debug_printf("%s: enter\n", __func__);
|
||||
|
||||
if (!video)
|
||||
return;
|
||||
|
||||
for (i = 0; i < VMWARE_VID_NUM_PORTS; ++i) {
|
||||
vmw_xv_stop_video(pScrn, &video->port[i], TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
*-----------------------------------------------------------------------------
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue