diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-02-22 01:05:01 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-03-26 10:57:59 +1000 |
commit | 9811275f08a5fafb9910556e3a748c265a524697 (patch) | |
tree | 717b6fd67f9248e33b9864a0e7ed24d14fa91564 /nvkm | |
parent | a114975ee1a10aaf340be0683e561929acd8b26d (diff) | |
download | nouveau-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.c | 6 |
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); } |