aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2018-05-15 22:07:32 -0400
committerBen Skeggs <bskeggs@redhat.com>2018-05-18 03:09:35 -0400
commit6c46d01f25bcf74608d09645c27c35c3f3940ebe (patch)
tree83d1a7fc3342b204f41963d2b0a92a20d0d55155 /drivers/gpu/drm
parentdd3b89be3eafd1c9977e350e81c5556230319101 (diff)
drm/nouveau/gr/gf100-: insert some WFIs during gr init
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>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c4
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
index f0f5a518e52a..e813a3f8ea93 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c
@@ -1385,6 +1385,8 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
1385 gf100_gr_mmio(gr, gr->fuc_sw_ctx); 1385 gf100_gr_mmio(gr, gr->fuc_sw_ctx);
1386 } 1386 }
1387 1387
1388 gf100_gr_wait_idle(gr);
1389
1388 idle_timeout = nvkm_mask(device, 0x404154, 0xffffffff, 0x00000000); 1390 idle_timeout = nvkm_mask(device, 0x404154, 0xffffffff, 0x00000000);
1389 1391
1390 grctx->pagepool(info); 1392 grctx->pagepool(info);
@@ -1396,6 +1398,8 @@ gf100_grctx_generate_main(struct gf100_gr *gr, struct gf100_grctx *info)
1396 1398
1397 gf100_grctx_generate_floorsweep(gr); 1399 gf100_grctx_generate_floorsweep(gr);
1398 1400
1401 gf100_gr_wait_idle(gr);
1402
1399 if (grctx->r400088) grctx->r400088(gr, false); 1403 if (grctx->r400088) grctx->r400088(gr, false);
1400 if (gr->fuc_bundle) 1404 if (gr->fuc_bundle)
1401 gf100_gr_icmd(gr, gr->fuc_bundle); 1405 gf100_gr_icmd(gr, gr->fuc_bundle);
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
index 8dd4bd71b4fc..70d3d41e616c 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c
@@ -2123,6 +2123,8 @@ gf100_gr_init(struct gf100_gr *gr)
2123 else 2123 else
2124 gf100_gr_mmio(gr, gr->func->mmio); 2124 gf100_gr_mmio(gr, gr->func->mmio);
2125 2125
2126 gf100_gr_wait_idle(gr);
2127
2126 if (gr->func->init_r405a14) 2128 if (gr->func->init_r405a14)
2127 gr->func->init_r405a14(gr); 2129 gr->func->init_r405a14(gr);
2128 2130