Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04e9e94d authored by Jakob Bornecrantz's avatar Jakob Bornecrantz Committed by Dave Airlie
Browse files

drm/vmwgfx: Make sure to unpin old and pin new framebuffer.

parent 6a591a96
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -150,6 +150,15 @@ static int vmw_ldu_add_active(struct vmw_private *vmw_priv,
	struct vmw_legacy_display_unit *entry;
	struct list_head *at;

	BUG_ON(!ld->num_active && ld->fb);
	if (vfb != ld->fb) {
		if (ld->fb && ld->fb->unpin)
			ld->fb->unpin(ld->fb);
		if (vfb->pin)
			vfb->pin(vfb);
		ld->fb = vfb;
	}

	if (!list_empty(&ldu->active))
		return 0;

@@ -162,12 +171,8 @@ static int vmw_ldu_add_active(struct vmw_private *vmw_priv,
	}

	list_add(&ldu->active, at);
	if (ld->num_active++ == 0) {
		BUG_ON(ld->fb);
		if (vfb->pin)
			vfb->pin(vfb);
		ld->fb = vfb;
	}

	ld->num_active++;

	return 0;
}