aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/qxl/qxl_display.c
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2013-12-04 07:13:58 -0500
committerDave Airlie <airlied@redhat.com>2013-12-17 19:49:08 -0500
commit73e9efd4bddbf42d2938a150ba680b73b6126b77 (patch)
tree146a8b66778c04efcd05f7b22c4fcb13c859ff7f /drivers/gpu/drm/qxl/qxl_display.c
parentee61c7303f84e2ef978aaed9b9640476c63ba586 (diff)
drm: Push dirtyfb ioctl kms locking down to drivers
Not all drivers will need take all the modeset locks for dirtyfb, so push the locking down to the drivers. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Jakob Bornecrantz <jakob@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_display.c')
-rw-r--r--drivers/gpu/drm/qxl/qxl_display.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index 5e827c29d194..b8f3bc7cf8f0 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -399,10 +399,14 @@ static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb,
399 struct qxl_bo *qobj; 399 struct qxl_bo *qobj;
400 int inc = 1; 400 int inc = 1;
401 401
402 drm_modeset_lock_all(fb->dev);
403
402 qobj = gem_to_qxl_bo(qxl_fb->obj); 404 qobj = gem_to_qxl_bo(qxl_fb->obj);
403 /* if we aren't primary surface ignore this */ 405 /* if we aren't primary surface ignore this */
404 if (!qobj->is_primary) 406 if (!qobj->is_primary) {
407 drm_modeset_unlock_all(fb->dev);
405 return 0; 408 return 0;
409 }
406 410
407 if (!num_clips) { 411 if (!num_clips) {
408 num_clips = 1; 412 num_clips = 1;
@@ -417,6 +421,9 @@ static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb,
417 421
418 qxl_draw_dirty_fb(qdev, qxl_fb, qobj, flags, color, 422 qxl_draw_dirty_fb(qdev, qxl_fb, qobj, flags, color,
419 clips, num_clips, inc); 423 clips, num_clips, inc);
424
425 drm_modeset_unlock_all(fb->dev);
426
420 return 0; 427 return 0;
421} 428}
422 429