summaryrefslogtreecommitdiff
path: root/nvkm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-02-22 01:05:01 +1000
committerBen Skeggs <bskeggs@redhat.com>2014-03-26 10:57:59 +1000
commit9811275f08a5fafb9910556e3a748c265a524697 (patch)
tree717b6fd67f9248e33b9864a0e7ed24d14fa91564 /nvkm
parenta114975ee1a10aaf340be0683e561929acd8b26d (diff)
downloadnouveau-9811275f08a5fafb9910556e3a748c265a524697.tar.gz
fifo/nvc0: use runlist event instead of polling
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'nvkm')
-rw-r--r--nvkm/engine/fifo/nvc0.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/nvkm/engine/fifo/nvc0.c b/nvkm/engine/fifo/nvc0.c
index 97416c6a0..d39651695 100644
--- a/nvkm/engine/fifo/nvc0.c
+++ b/nvkm/engine/fifo/nvc0.c
@@ -96,8 +96,10 @@ nvc0_fifo_runlist_update(struct nvc0_fifo_priv *priv)
nv_wr32(priv, 0x002270, cur->addr >> 12);
nv_wr32(priv, 0x002274, 0x01f00000 | (p >> 3));
- if (!nv_wait(priv, 0x00227c, 0x00100000, 0x00000000))
- nv_error(priv, "runlist update failed\n");
+ if (wait_event_timeout(priv->runlist.wait,
+ !(nv_rd32(priv, 0x00227c) & 0x00100000),
+ msecs_to_jiffies(2000)) == 0)
+ nv_error(priv, "runlist update timeout\n");
mutex_unlock(&nv_subdev(priv)->mutex);
}