diff options
-rw-r--r-- | drivers/gpu/drm/nouveau/nvc0_fifo.c | 15 |
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 | } |