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

Commit be7a7b89 authored by Rob Clark's avatar Rob Clark
Browse files

drm/msm/atomic: fix issue with gnome-shell wayland



The gnome-shell wayland compositor triggers a setcrtc with an fb that is
still being rendered, triggering the call to _wait_fence_interruptable().
But a NULL timeout means "don't wait, return -EBUSY if not ready", which
in turn causes the setcrtc to fail.

Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
parent e172d10a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -178,6 +178,7 @@ int msm_atomic_commit(struct drm_device *dev,
{
	int nplanes = dev->mode_config.num_total_plane;
	int ncrtcs = dev->mode_config.num_crtc;
	struct timespec timeout;
	struct msm_commit *c;
	int i, ret;

@@ -250,7 +251,9 @@ int msm_atomic_commit(struct drm_device *dev,
		return 0;
	}

	ret = msm_wait_fence_interruptable(dev, c->fence, NULL);
	jiffies_to_timespec(jiffies + msecs_to_jiffies(1000), &timeout);

	ret = msm_wait_fence_interruptable(dev, c->fence, &timeout);
	if (ret) {
		WARN_ON(ret);  // TODO unswap state back?  or??
		commit_destroy(c);