diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2012-09-26 19:13:43 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2012-09-26 19:13:43 -0400 |
commit | 833dd8224edda0bc1cfa1b0fd5cbe7a36fd59db8 (patch) | |
tree | 6b557861889b009555ba1faf7da22131dd306f57 /drivers | |
parent | 79eee7aa0d4de5a42331c63d3c7c735248b53d0c (diff) |
drm/nvc0/fifo: ignore bits in PFIFO_INTR that aren't set in PFIFO_INTR_EN
PFIFO_INTR = 0x40000000 appears to be a normal case on nvc0/nve0 PFIFO,
the binary driver appears to completely ignore it in its PFIFO interrupt
handler and even masks off the bit (as we do) in PFIFO_INTR_EN at init
time.
The bits still light up in the hardware sometimes though, so lets just
ignore any bits we haven't explicitely requested.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvc0_fifo.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nve0_fifo.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nvc0_fifo.c b/drivers/gpu/drm/nouveau/nvc0_fifo.c index 7d85553d518c..cd39eb99f5b1 100644 --- a/drivers/gpu/drm/nouveau/nvc0_fifo.c +++ b/drivers/gpu/drm/nouveau/nvc0_fifo.c | |||
@@ -373,7 +373,8 @@ nvc0_fifo_isr_subfifo_intr(struct drm_device *dev, int unit) | |||
373 | static void | 373 | static void |
374 | nvc0_fifo_isr(struct drm_device *dev) | 374 | nvc0_fifo_isr(struct drm_device *dev) |
375 | { | 375 | { |
376 | u32 stat = nv_rd32(dev, 0x002100); | 376 | u32 mask = nv_rd32(dev, 0x002140); |
377 | u32 stat = nv_rd32(dev, 0x002100) & mask; | ||
377 | 378 | ||
378 | if (stat & 0x00000100) { | 379 | if (stat & 0x00000100) { |
379 | NV_INFO(dev, "PFIFO: unknown status 0x00000100\n"); | 380 | NV_INFO(dev, "PFIFO: unknown status 0x00000100\n"); |
diff --git a/drivers/gpu/drm/nouveau/nve0_fifo.c b/drivers/gpu/drm/nouveau/nve0_fifo.c index e98d144e6eb9..281bece751b6 100644 --- a/drivers/gpu/drm/nouveau/nve0_fifo.c +++ b/drivers/gpu/drm/nouveau/nve0_fifo.c | |||
@@ -345,7 +345,8 @@ nve0_fifo_isr_subfifo_intr(struct drm_device *dev, int unit) | |||
345 | static void | 345 | static void |
346 | nve0_fifo_isr(struct drm_device *dev) | 346 | nve0_fifo_isr(struct drm_device *dev) |
347 | { | 347 | { |
348 | u32 stat = nv_rd32(dev, 0x002100); | 348 | u32 mask = nv_rd32(dev, 0x002140); |
349 | u32 stat = nv_rd32(dev, 0x002100) & mask; | ||
349 | 350 | ||
350 | if (stat & 0x00000100) { | 351 | if (stat & 0x00000100) { |
351 | NV_INFO(dev, "PFIFO: unknown status 0x00000100\n"); | 352 | NV_INFO(dev, "PFIFO: unknown status 0x00000100\n"); |