void
gf100_ltc_cbc_wait(struct nvkm_ltc_priv *ltc)
{
+ struct nvkm_device *device = ltc->base.subdev.device;
int c, s;
for (c = 0; c < ltc->ltc_nr; c++) {
- for (s = 0; s < ltc->lts_nr; s++)
- nv_wait(ltc, 0x1410c8 + c * 0x2000 + s * 0x400, ~0, 0);
+ for (s = 0; s < ltc->lts_nr; s++) {
+ const u32 addr = 0x1410c8 + (c * 0x2000) + (s * 0x400);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, addr))
+ break;
+ );
+ }
}
}
static void
gm107_ltc_cbc_wait(struct nvkm_ltc_priv *ltc)
{
+ struct nvkm_device *device = ltc->base.subdev.device;
int c, s;
for (c = 0; c < ltc->ltc_nr; c++) {
- for (s = 0; s < ltc->lts_nr; s++)
- nv_wait(ltc, 0x14046c + c * 0x2000 + s * 0x200, ~0, 0);
+ for (s = 0; s < ltc->lts_nr; s++) {
+ const u32 addr = 0x14046c + (c * 0x2000) + (s * 0x200);
+ nvkm_msec(device, 2000,
+ if (!nvkm_rd32(device, addr))
+ break;
+ );
+ }
}
}