diff options
Diffstat (limited to 'drivers/gpu/drm/drm_atomic.c')
| -rw-r--r-- | drivers/gpu/drm/drm_atomic.c | 11 | 
1 files changed, 8 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index c0f336d23f9c..aed25c4183bb 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -1655,6 +1655,9 @@ int drm_atomic_check_only(struct drm_atomic_state *state)  	if (config->funcs->atomic_check)  		ret = config->funcs->atomic_check(state->dev, state); +	if (ret) +		return ret; +  	if (!state->allow_modeset) {  		for_each_new_crtc_in_state(state, crtc, crtc_state, i) {  			if (drm_atomic_crtc_needs_modeset(crtc_state)) { @@ -1665,7 +1668,7 @@ int drm_atomic_check_only(struct drm_atomic_state *state)  		}  	} -	return ret; +	return 0;  }  EXPORT_SYMBOL(drm_atomic_check_only); @@ -2167,10 +2170,10 @@ int drm_mode_atomic_ioctl(struct drm_device *dev,  	struct drm_atomic_state *state;  	struct drm_modeset_acquire_ctx ctx;  	struct drm_plane *plane; -	struct drm_out_fence_state *fence_state = NULL; +	struct drm_out_fence_state *fence_state;  	unsigned plane_mask;  	int ret = 0; -	unsigned int i, j, num_fences = 0; +	unsigned int i, j, num_fences;  	/* disallow for drivers not supporting atomic: */  	if (!drm_core_check_feature(dev, DRIVER_ATOMIC)) @@ -2211,6 +2214,8 @@ retry:  	plane_mask = 0;  	copied_objs = 0;  	copied_props = 0; +	fence_state = NULL; +	num_fences = 0;  	for (i = 0; i < arg->count_objs; i++) {  		uint32_t obj_id, count_props; |