Commit be7a7b89 authored by Rob Clark's avatar Rob Clark

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
...@@ -178,6 +178,7 @@ int msm_atomic_commit(struct drm_device *dev, ...@@ -178,6 +178,7 @@ int msm_atomic_commit(struct drm_device *dev,
{ {
int nplanes = dev->mode_config.num_total_plane; int nplanes = dev->mode_config.num_total_plane;
int ncrtcs = dev->mode_config.num_crtc; int ncrtcs = dev->mode_config.num_crtc;
struct timespec timeout;
struct msm_commit *c; struct msm_commit *c;
int i, ret; int i, ret;
...@@ -250,7 +251,9 @@ int msm_atomic_commit(struct drm_device *dev, ...@@ -250,7 +251,9 @@ int msm_atomic_commit(struct drm_device *dev,
return 0; 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) { if (ret) {
WARN_ON(ret); // TODO unswap state back? or?? WARN_ON(ret); // TODO unswap state back? or??
commit_destroy(c); commit_destroy(c);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment