Skip to content

Commit

Permalink
drm/nouveau/gr/gf100-: insert some WFIs during gr init
Browse files Browse the repository at this point in the history
Inserted wait-for-gr-idle in the places it seems that RM does it, seems
to prevent some random mmio timeouts on Quadro GV100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  • Loading branch information
Ben Skeggs committed May 18, 2018
1 parent dd3b89b commit 6c46d01
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
4 changes: 4 additions & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
Original file line number Diff line number Diff line change
Expand Up @@ -1385,6 +1385,8 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
gf100_gr_mmio(gr, gr->fuc_sw_ctx);
}

gf100_gr_wait_idle(gr);

idle_timeout = nvkm_mask(device, 0x404154, 0xffffffff, 0x00000000);

grctx->pagepool(info);
Expand All @@ -1396,6 +1398,8 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)

gf100_grctx_generate_floorsweep(gr);

gf100_gr_wait_idle(gr);

if (grctx->r400088) grctx->r400088(gr, false);
if (gr->fuc_bundle)
gf100_gr_icmd(gr, gr->fuc_bundle);
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
Original file line number Diff line number Diff line change
Expand Up @@ -2123,6 +2123,8 @@ gf100_gr_init(struct gf100_gr *gr)
else
gf100_gr_mmio(gr, gr->func->mmio);

gf100_gr_wait_idle(gr);

if (gr->func->init_r405a14)
gr->func->init_r405a14(gr);

Expand Down

0 comments on commit 6c46d01

Please sign in to comment.