summaryrefslogtreecommitdiff
path: root/drm/nouveau/nvkm/engine/gr/nv20.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 14:54:11 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 12:37:32 +1000
commit9220c6ba7007640f03510ddfdcb681f763f152c8 (patch)
tree1d8dab36606efa9d26d677dc8a8772d065ef64d5 /drm/nouveau/nvkm/engine/gr/nv20.c
parent608a1643ca9000085ede98508871c0bdde8386c5 (diff)
downloadnouveau-9220c6ba7007640f03510ddfdcb681f763f152c8.tar.gz
gr: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm/nouveau/nvkm/engine/gr/nv20.c')
-rw-r--r--drm/nouveau/nvkm/engine/gr/nv20.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drm/nouveau/nvkm/engine/gr/nv20.c b/drm/nouveau/nvkm/engine/gr/nv20.c
index 8e264f79c..21aff9b5e 100644
--- a/drm/nouveau/nvkm/engine/gr/nv20.c
+++ b/drm/nouveau/nvkm/engine/gr/nv20.c
@@ -127,7 +127,10 @@ nv20_gr_context_fini(struct nvkm_object *object, bool suspend)
if (chan->chid == chid) {
nvkm_wr32(device, 0x400784, nv_gpuobj(chan)->addr >> 4);
nvkm_wr32(device, 0x400788, 0x00000002);
- nv_wait(gr, 0x400700, 0xffffffff, 0x00000000);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, 0x400700))
+ break;
+ );
nvkm_wr32(device, 0x400144, 0x10000000);
nvkm_mask(device, 0x400148, 0xff000000, 0x1f000000);
}
@@ -289,12 +292,18 @@ nv20_gr_init(struct nvkm_object *object)
nvkm_wr32(device, NV10_PGRAPH_RDI_INDEX, 0x003d0000);
for (i = 0; i < 15; i++)
nvkm_wr32(device, NV10_PGRAPH_RDI_DATA, 0x00000000);
- nv_wait(gr, 0x400700, 0xffffffff, 0x00000000);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, 0x400700))
+ break;
+ );
} else {
nvkm_wr32(device, NV10_PGRAPH_RDI_INDEX, 0x02c80000);
for (i = 0; i < 32; i++)
nvkm_wr32(device, NV10_PGRAPH_RDI_DATA, 0x00000000);
- nv_wait(gr, 0x400700, 0xffffffff, 0x00000000);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, 0x400700))
+ break;
+ );
}
nvkm_wr32(device, NV03_PGRAPH_INTR , 0xFFFFFFFF);