@ -2497,12 +2497,24 @@ drm_pending_state_apply_atomic(struct drm_pending_state *pending_state,
struct drm_output_state * output_state , * tmp ;
struct drm_output_state * output_state , * tmp ;
struct drm_plane * plane ;
struct drm_plane * plane ;
drmModeAtomicReq * req = drmModeAtomicAlloc ( ) ;
drmModeAtomicReq * req = drmModeAtomicAlloc ( ) ;
uint32_t flags = 0 ;
uint32_t flags ;
int ret = 0 ;
int ret = 0 ;
if ( ! req )
if ( ! req )
return - 1 ;
return - 1 ;
switch ( mode ) {
case DRM_STATE_APPLY_SYNC :
flags = 0 ;
break ;
case DRM_STATE_APPLY_ASYNC :
flags = DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK ;
break ;
case DRM_STATE_TEST_ONLY :
flags = DRM_MODE_ATOMIC_TEST_ONLY ;
break ;
}
if ( b - > state_invalid ) {
if ( b - > state_invalid ) {
struct weston_head * head_base ;
struct weston_head * head_base ;
struct drm_head * head ;
struct drm_head * head ;
@ -2595,17 +2607,6 @@ drm_pending_state_apply_atomic(struct drm_pending_state *pending_state,
goto out ;
goto out ;
}
}
switch ( mode ) {
case DRM_STATE_APPLY_SYNC :
break ;
case DRM_STATE_APPLY_ASYNC :
flags | = DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK ;
break ;
case DRM_STATE_TEST_ONLY :
flags | = DRM_MODE_ATOMIC_TEST_ONLY ;
break ;
}
ret = drmModeAtomicCommit ( b - > drm . fd , req , flags , b ) ;
ret = drmModeAtomicCommit ( b - > drm . fd , req , flags , b ) ;
/* Test commits do not take ownership of the state; return
/* Test commits do not take ownership of the state; return