aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/qxl/qxl_display.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2021-02-04 15:57:08 +0100
committerGerd Hoffmann <kraxel@redhat.com>2021-02-05 08:52:40 +0100
commita7709b9b89a67f3ead2d188b1d0c261059b1f291 (patch)
tree7e02b60a207d38b502257c552cf0ff0657729fe8 /drivers/gpu/drm/qxl/qxl_display.c
parentdrm/qxl: properly pin/unpin shadow (diff)
downloadlinux-dev-a7709b9b89a67f3ead2d188b1d0c261059b1f291.tar.xz
linux-dev-a7709b9b89a67f3ead2d188b1d0c261059b1f291.zip
drm/qxl: handle shadow in primary destroy
qxl_primary_atomic_disable must check whenever the framebuffer bo has a shadow surface and in case it has check the shadow primary status. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: http://patchwork.freedesktop.org/patch/msgid/20210204145712.1531203-8-kraxel@redhat.com
Diffstat (limited to 'drivers/gpu/drm/qxl/qxl_display.c')
-rw-r--r--drivers/gpu/drm/qxl/qxl_display.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index d25fd3acc891..c326412136c5 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -562,6 +562,8 @@ static void qxl_primary_atomic_disable(struct drm_plane *plane,
if (old_state->fb) {
struct qxl_bo *bo = gem_to_qxl_bo(old_state->fb->obj[0]);
+ if (bo->shadow)
+ bo = bo->shadow;
if (bo->is_primary) {
qxl_io_destroy_primary(qdev);
bo->is_primary = false;