|
@@ -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,
|
|
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);
|