aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/nouveau/nvc0_fifo.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nvc0_fifo.c b/drivers/gpu/drm/nouveau/nvc0_fifo.c
index e6f92c541dba..e9f8643bed9b 100644
--- a/drivers/gpu/drm/nouveau/nvc0_fifo.c
+++ b/drivers/gpu/drm/nouveau/nvc0_fifo.c
@@ -418,6 +418,12 @@ nvc0_fifo_isr(struct drm_device *dev)
418{ 418{
419 u32 stat = nv_rd32(dev, 0x002100); 419 u32 stat = nv_rd32(dev, 0x002100);
420 420
421 if (stat & 0x00000100) {
422 NV_INFO(dev, "PFIFO: unknown status 0x00000100\n");
423 nv_wr32(dev, 0x002100, 0x00000100);
424 stat &= ~0x00000100;
425 }
426
421 if (stat & 0x10000000) { 427 if (stat & 0x10000000) {
422 u32 units = nv_rd32(dev, 0x00259c); 428 u32 units = nv_rd32(dev, 0x00259c);
423 u32 u = units; 429 u32 u = units;
@@ -446,10 +452,15 @@ nvc0_fifo_isr(struct drm_device *dev)
446 stat &= ~0x20000000; 452 stat &= ~0x20000000;
447 } 453 }
448 454
455 if (stat & 0x40000000) {
456 NV_INFO(dev, "PFIFO: unknown status 0x40000000\n");
457 nv_mask(dev, 0x002a00, 0x00000000, 0x00000000);
458 stat &= ~0x40000000;
459 }
460
449 if (stat) { 461 if (stat) {
450 NV_INFO(dev, "PFIFO: unhandled status 0x%08x\n", stat); 462 NV_INFO(dev, "PFIFO: unhandled status 0x%08x\n", stat);
451 nv_wr32(dev, 0x002100, stat); 463 nv_wr32(dev, 0x002100, stat);
464 nv_wr32(dev, 0x002140, 0);
452 } 465 }
453
454 nv_wr32(dev, 0x2140, 0);
455} 466}