|
@@ -956,6 +956,7 @@ gk104_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
|
|
|
{
|
|
|
struct nvkm_device *device = gr->base.engine.subdev.device;
|
|
|
const struct gf100_grctx_func *grctx = gr->func->grctx;
|
|
|
+ u32 idle_timeout;
|
|
|
int i;
|
|
|
|
|
|
nvkm_mc_unk260(device->mc, 0);
|
|
@@ -966,7 +967,7 @@ gk104_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
|
|
|
gf100_gr_mmio(gr, grctx->tpc);
|
|
|
gf100_gr_mmio(gr, grctx->ppc);
|
|
|
|
|
|
- nvkm_wr32(device, 0x404154, 0x00000000);
|
|
|
+ idle_timeout = nvkm_mask(device, 0x404154, 0xffffffff, 0x00000000);
|
|
|
|
|
|
grctx->bundle(info);
|
|
|
grctx->pagepool(info);
|
|
@@ -986,7 +987,7 @@ gk104_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
|
|
|
nvkm_mask(device, 0x419f78, 0x00000001, 0x00000000);
|
|
|
|
|
|
gf100_gr_icmd(gr, grctx->icmd);
|
|
|
- nvkm_wr32(device, 0x404154, 0x00000400);
|
|
|
+ nvkm_wr32(device, 0x404154, idle_timeout);
|
|
|
gf100_gr_mthd(gr, grctx->mthd);
|
|
|
nvkm_mc_unk260(device->mc, 1);
|
|
|
|