diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2015-08-20 14:54:11 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2015-08-28 12:40:21 +1000 |
commit | 3a020b4dfc3a6c79f144b2c6786d86b33cda64d9 (patch) | |
tree | bf9ae689d1295c0bc644f1bd7d5bce7787d921b4 /drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | |
parent | 6ed5c1682425e29913785977cccca67ff3dec5f1 (diff) |
drm/nouveau/disp: switch to new-style timer macros
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c index 293b41bd2468..ef728c969ecb 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/gf110.c @@ -115,7 +115,10 @@ gf110_disp_dmac_init(struct nvkm_object *object) nvkm_wr32(device, 0x610490 + (chid * 0x0010), 0x00000013); /* wait for it to go inactive */ - if (!nv_wait(disp, 0x610490 + (chid * 0x10), 0x80000000, 0x00000000)) { + if (nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x610490 + (chid * 0x10)) & 0x80000000)) + break; + ) < 0) { nv_error(dmac, "init: 0x%08x\n", nvkm_rd32(device, 0x610490 + (chid * 0x10))); return -EBUSY; @@ -135,7 +138,10 @@ gf110_disp_dmac_fini(struct nvkm_object *object, bool suspend) /* deactivate channel */ nvkm_mask(device, 0x610490 + (chid * 0x0010), 0x00001010, 0x00001000); nvkm_mask(device, 0x610490 + (chid * 0x0010), 0x00000003, 0x00000000); - if (!nv_wait(disp, 0x610490 + (chid * 0x10), 0x001e0000, 0x00000000)) { + if (nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x610490 + (chid * 0x10)) & 0x001e0000)) + break; + ) < 0) { nv_error(dmac, "fini: 0x%08x\n", nvkm_rd32(device, 0x610490 + (chid * 0x10))); if (suspend) @@ -317,7 +323,10 @@ gf110_disp_core_init(struct nvkm_object *object) nvkm_wr32(device, 0x610490, 0x01000013); /* wait for it to go inactive */ - if (!nv_wait(disp, 0x610490, 0x80000000, 0x00000000)) { + if (nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x610490) & 0x80000000)) + break; + ) < 0) { nv_error(mast, "init: 0x%08x\n", nvkm_rd32(device, 0x610490)); return -EBUSY; } @@ -335,7 +344,10 @@ gf110_disp_core_fini(struct nvkm_object *object, bool suspend) /* deactivate channel */ nvkm_mask(device, 0x610490, 0x00000010, 0x00000000); nvkm_mask(device, 0x610490, 0x00000003, 0x00000000); - if (!nv_wait(disp, 0x610490, 0x001e0000, 0x00000000)) { + if (nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x610490) & 0x001e0000)) + break; + ) < 0) { nv_error(mast, "fini: 0x%08x\n", nvkm_rd32(device, 0x610490)); if (suspend) return -EBUSY; @@ -560,7 +572,11 @@ gf110_disp_pioc_init(struct nvkm_object *object) /* activate channel */ nvkm_wr32(device, 0x610490 + (chid * 0x10), 0x00000001); - if (!nv_wait(disp, 0x610490 + (chid * 0x10), 0x00030000, 0x00010000)) { + if (nvkm_msec(device, 2000, + u32 tmp = nvkm_rd32(device, 0x610490 + (chid * 0x10)); + if ((tmp & 0x00030000) == 0x00010000) + break; + ) < 0) { nv_error(pioc, "init: 0x%08x\n", nvkm_rd32(device, 0x610490 + (chid * 0x10))); return -EBUSY; @@ -578,7 +594,10 @@ gf110_disp_pioc_fini(struct nvkm_object *object, bool suspend) int chid = pioc->base.chid; nvkm_mask(device, 0x610490 + (chid * 0x10), 0x00000001, 0x00000000); - if (!nv_wait(disp, 0x610490 + (chid * 0x10), 0x00030000, 0x00000000)) { + if (nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x610490 + (chid * 0x10)) & 0x00030000)) + break; + ) < 0) { nv_error(pioc, "timeout: 0x%08x\n", nvkm_rd32(device, 0x610490 + (chid * 0x10))); if (suspend) @@ -707,10 +726,11 @@ gf110_disp_main_init(struct nvkm_object *object) if (nvkm_rd32(device, 0x6100ac) & 0x00000100) { nvkm_wr32(device, 0x6100ac, 0x00000100); nvkm_mask(device, 0x6194e8, 0x00000001, 0x00000000); - if (!nv_wait(disp, 0x6194e8, 0x00000002, 0x00000000)) { - nv_error(disp, "timeout acquiring display\n"); + if (nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x6194e8) & 0x00000002)) + break; + ) < 0) return -EBUSY; - } } /* point at display engine memory area (hash table, objects) */ |