drm/qxl: Do not pin buffer objects for vmap
authorThomas Zimmermann <tzimmermann@suse.de>
Tue, 27 Feb 2024 10:15:00 +0000 (11:15 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 11 Mar 2024 12:33:50 +0000 (13:33 +0100)
Pin and vmap are distinct operations. Do not perform a pin as part
of the vmap call. This used to be necessary to keep the fbdev buffer
in place while it is being updated. Fbdev emulation has meanwhile
been fixed to lock the buffer correctly. Same for vunmap.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> # virtio-gpu
Acked-by: Christian König <christian.koenig@amd.com>
Acked-by: Zack Rusin <zack.rusin@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240227113853.8464-14-tzimmermann@suse.de
drivers/gpu/drm/qxl/qxl_object.c

index 39218e979a807ad2a3f6a52a8bdf4625f5344a0c..5893e27a7ae500d65f78615cbe2a92a8fe2ab5b8 100644 (file)
@@ -164,10 +164,6 @@ int qxl_bo_vmap_locked(struct qxl_bo *bo, struct iosys_map *map)
                goto out;
        }
 
-       r = qxl_bo_pin_locked(bo);
-       if (r)
-               return r;
-
        r = ttm_bo_vmap(&bo->tbo, &bo->map);
        if (r) {
                qxl_bo_unpin_locked(bo);
@@ -243,7 +239,6 @@ void qxl_bo_vunmap_locked(struct qxl_bo *bo)
                return;
        bo->kptr = NULL;
        ttm_bo_vunmap(&bo->tbo, &bo->map);
-       qxl_bo_unpin_locked(bo);
 }
 
 int qxl_bo_vunmap(struct qxl_bo *bo)