diff options
Diffstat (limited to 'drivers/gpu/drm/udl/udl_fb.c')
| -rw-r--r-- | drivers/gpu/drm/udl/udl_fb.c | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c index 97e9d614700..377176372da 100644 --- a/drivers/gpu/drm/udl/udl_fb.c +++ b/drivers/gpu/drm/udl/udl_fb.c @@ -403,15 +403,17 @@ static int udl_user_framebuffer_dirty(struct drm_framebuffer *fb,  	int i;  	int ret = 0; +	drm_modeset_lock_all(fb->dev); +  	if (!ufb->active_16) -		return 0; +		goto unlock;  	if (ufb->obj->base.import_attach) {  		ret = dma_buf_begin_cpu_access(ufb->obj->base.import_attach->dmabuf,  					       0, ufb->obj->base.size,  					       DMA_FROM_DEVICE);  		if (ret) -			return ret; +			goto unlock;  	}  	for (i = 0; i < num_clips; i++) { @@ -427,6 +429,10 @@ static int udl_user_framebuffer_dirty(struct drm_framebuffer *fb,  				       0, ufb->obj->base.size,  				       DMA_FROM_DEVICE);  	} + + unlock: +	drm_modeset_unlock_all(fb->dev); +  	return ret;  }  | 
