drm/nouveau/fifo: program NV_PFIFO_FB_TIMEOUT on init
authorBen Skeggs <bskeggs@redhat.com>
Mon, 3 Oct 2022 03:20:07 +0000 (13:20 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 9 Nov 2022 00:44:48 +0000 (10:44 +1000)
NVGPU and RM both program this value.

Fixes a bunch of random hangs running parallel piglit.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/fifo/gk104.c

index d2b616b97f94142f49c724d2a8a394791c2d2665..3c2f6ce62286594c0508bd1e7b2d696b1ec6467e 100644 (file)
@@ -645,6 +645,7 @@ gf100_fifo_init_pbdmas(struct nvkm_fifo *fifo, u32 mask)
                nvkm_wr32(device, 0x00221c, ~(1 << 1)); /* PCE1 */
        }
 
+       nvkm_mask(device, 0x002a04, 0xbfffffff, 0xbfffffff);
 }
 
 static void
index 14c604a03f700f2753bd338adc2e11af75e37d87..07fd5b938184988c2f774fdce887eaa40462a54e 100644 (file)
@@ -960,6 +960,7 @@ gk104_fifo_init_pbdmas(struct nvkm_fifo *fifo, u32 mask)
        struct nvkm_device *device = fifo->engine.subdev.device;
 
        nvkm_wr32(device, 0x000204, mask);
+       nvkm_mask(device, 0x002a04, 0xbfffffff, 0xbfffffff);
 }
 
 void