Commit af3082b3 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/fifo: switch to new-style timer macros

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 3a020b4d
...@@ -106,7 +106,10 @@ g84_fifo_context_detach(struct nvkm_object *parent, bool suspend, ...@@ -106,7 +106,10 @@ g84_fifo_context_detach(struct nvkm_object *parent, bool suspend,
save = nvkm_mask(device, 0x002520, 0x0000003f, 1 << engn); save = nvkm_mask(device, 0x002520, 0x0000003f, 1 << engn);
nvkm_wr32(device, 0x0032fc, nv_gpuobj(base)->addr >> 12); nvkm_wr32(device, 0x0032fc, nv_gpuobj(base)->addr >> 12);
done = nv_wait_ne(fifo, 0x0032fc, 0xffffffff, 0xffffffff); done = nvkm_msec(device, 2000,
if (nvkm_rd32(device, 0x0032fc) != 0xffffffff)
break;
) >= 0;
nvkm_wr32(device, 0x002520, save); nvkm_wr32(device, 0x002520, save);
if (!done) { if (!done) {
nv_error(fifo, "channel %d [%s] unload timeout\n", nv_error(fifo, "channel %d [%s] unload timeout\n",
......
...@@ -166,7 +166,10 @@ gf100_fifo_context_detach(struct nvkm_object *parent, bool suspend, ...@@ -166,7 +166,10 @@ gf100_fifo_context_detach(struct nvkm_object *parent, bool suspend,
} }
nvkm_wr32(device, 0x002634, chan->base.chid); nvkm_wr32(device, 0x002634, chan->base.chid);
if (!nv_wait(fifo, 0x002634, 0xffffffff, chan->base.chid)) { if (nvkm_msec(device, 2000,
if (nvkm_rd32(device, 0x002634) == chan->base.chid)
break;
) < 0) {
nv_error(fifo, "channel %d [%s] kick timeout\n", nv_error(fifo, "channel %d [%s] kick timeout\n",
chan->base.chid, nvkm_client_name(chan)); chan->base.chid, nvkm_client_name(chan));
if (suspend) if (suspend)
......
...@@ -174,7 +174,10 @@ gk104_fifo_chan_kick(struct gk104_fifo_chan *chan) ...@@ -174,7 +174,10 @@ gk104_fifo_chan_kick(struct gk104_fifo_chan *chan)
struct nvkm_device *device = fifo->base.engine.subdev.device; struct nvkm_device *device = fifo->base.engine.subdev.device;
nvkm_wr32(device, 0x002634, chan->base.chid); nvkm_wr32(device, 0x002634, chan->base.chid);
if (!nv_wait(fifo, 0x002634, 0x100000, 0x000000)) { if (nvkm_msec(device, 2000,
if (!(nvkm_rd32(device, 0x002634) & 0x00100000))
break;
) < 0) {
nv_error(fifo, "channel %d [%s] kick timeout\n", nv_error(fifo, "channel %d [%s] kick timeout\n",
chan->base.chid, nvkm_client_name(chan)); chan->base.chid, nvkm_client_name(chan));
return -EBUSY; return -EBUSY;
......
...@@ -321,9 +321,11 @@ __acquires(fifo->base.lock) ...@@ -321,9 +321,11 @@ __acquires(fifo->base.lock)
* to avoid this, we invalidate the most recently calculated * to avoid this, we invalidate the most recently calculated
* instance. * instance.
*/ */
if (!nv_wait(fifo, NV04_PFIFO_CACHE1_PULL0, nvkm_msec(device, 2000,
NV04_PFIFO_CACHE1_PULL0_HASH_BUSY, 0x00000000)) u32 tmp = nvkm_rd32(device, NV04_PFIFO_CACHE1_PULL0);
nv_warn(fifo, "timeout idling puller\n"); if (!(tmp & NV04_PFIFO_CACHE1_PULL0_HASH_BUSY))
break;
);
if (nvkm_rd32(device, NV04_PFIFO_CACHE1_PULL0) & if (nvkm_rd32(device, NV04_PFIFO_CACHE1_PULL0) &
NV04_PFIFO_CACHE1_PULL0_HASH_FAILED) NV04_PFIFO_CACHE1_PULL0_HASH_FAILED)
......
...@@ -135,7 +135,10 @@ nv50_fifo_context_detach(struct nvkm_object *parent, bool suspend, ...@@ -135,7 +135,10 @@ nv50_fifo_context_detach(struct nvkm_object *parent, bool suspend,
/* do the kickoff... */ /* do the kickoff... */
nvkm_wr32(device, 0x0032fc, nv_gpuobj(base)->addr >> 12); nvkm_wr32(device, 0x0032fc, nv_gpuobj(base)->addr >> 12);
if (!nv_wait_ne(fifo, 0x0032fc, 0xffffffff, 0xffffffff)) { if (nvkm_msec(device, 2000,
if (nvkm_rd32(device, 0x0032fc) != 0xffffffff)
break;
) < 0) {
nv_error(fifo, "channel %d [%s] unload timeout\n", nv_error(fifo, "channel %d [%s] unload timeout\n",
chan->base.chid, nvkm_client_name(chan)); chan->base.chid, nvkm_client_name(chan));
if (suspend) if (suspend)
......
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