drm/qxl: Replace deprecated function in qxl_display
authorSidong Yang <realwakka@gmail.com>
Sun, 24 May 2020 02:26:23 +0000 (11:26 +0900)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 17 Aug 2020 11:13:13 +0000 (13:13 +0200)
Replace deprecated function drm_modeset_lock/unlock_all with
helper function DRM_MODESET_LOCK_ALL_BEGIN/END.

Signed-off-by: Sidong Yang <realwakka@gmail.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20200524022624.10363-1-realwakka@gmail.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/qxl/qxl_display.c

index 099dca4..fa79688 100644 (file)
@@ -162,7 +162,8 @@ static void qxl_update_offset_props(struct qxl_device *qdev)
 void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
 {
        struct drm_device *dev = &qdev->ddev;
-       int status, retries;
+       struct drm_modeset_acquire_ctx ctx;
+       int status, retries, ret;
 
        for (retries = 0; retries < 10; retries++) {
                status = qxl_display_copy_rom_client_monitors_config(qdev);
@@ -183,9 +184,9 @@ void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
                return;
        }
 
-       drm_modeset_lock_all(dev);
+       DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, DRM_MODESET_ACQUIRE_INTERRUPTIBLE, ret);
        qxl_update_offset_props(qdev);
-       drm_modeset_unlock_all(dev);
+       DRM_MODESET_LOCK_ALL_END(ctx, ret);
        if (!drm_helper_hpd_irq_event(dev)) {
                /* notify that the monitor configuration changed, to
                   adjust at the arbitrary resolution */
@@ -403,18 +404,17 @@ static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb,
        struct qxl_device *qdev = to_qxl(fb->dev);
        struct drm_clip_rect norect;
        struct qxl_bo *qobj;
+       struct drm_modeset_acquire_ctx ctx;
        bool is_primary;
-       int inc = 1;
+       int inc = 1, ret;
 
-       drm_modeset_lock_all(fb->dev);
+       DRM_MODESET_LOCK_ALL_BEGIN(fb->dev, ctx, DRM_MODESET_ACQUIRE_INTERRUPTIBLE, ret);
 
        qobj = gem_to_qxl_bo(fb->obj[0]);
        /* if we aren't primary surface ignore this */
        is_primary = qobj->shadow ? qobj->shadow->is_primary : qobj->is_primary;
-       if (!is_primary) {
-               drm_modeset_unlock_all(fb->dev);
-               return 0;
-       }
+       if (!is_primary)
+               goto out_lock_end;
 
        if (!num_clips) {
                num_clips = 1;
@@ -430,7 +430,8 @@ static int qxl_framebuffer_surface_dirty(struct drm_framebuffer *fb,
        qxl_draw_dirty_fb(qdev, fb, qobj, flags, color,
                          clips, num_clips, inc, 0);
 
-       drm_modeset_unlock_all(fb->dev);
+out_lock_end:
+       DRM_MODESET_LOCK_ALL_END(ctx, ret);
 
        return 0;
 }