aboutsummaryrefslogtreecommitdiff
path: root/shared-core/nouveau_irq.c
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-11-05 02:35:56 +1100
committerBen Skeggs <skeggsb@gmail.com>2007-11-05 02:48:50 +1100
commitc1008104adcd45faad2c6c1a2192c86447f3d9a3 (patch)
tree26de1175ff36096f2fcd6714903087002521e291 /shared-core/nouveau_irq.c
parentdfa449cf9a7ce5de9cbd571f604ae7c3c778dabd (diff)
nouveau: only pass annoying messages if irq isn't handled fully.
Diffstat (limited to 'shared-core/nouveau_irq.c')
-rw-r--r--shared-core/nouveau_irq.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/shared-core/nouveau_irq.c b/shared-core/nouveau_irq.c
index ad9a6fcf..e3fb62f4 100644
--- a/shared-core/nouveau_irq.c
+++ b/shared-core/nouveau_irq.c
@@ -298,16 +298,14 @@ static inline void
nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
- int handled = 0;
-
- DRM_DEBUG("PGRAPH notify interrupt\n");
+ int unhandled = 0;
if (nsource & NV03_PGRAPH_NSOURCE_NOTIFICATION && dev_priv->ttm) {
int channel;
- if (!nouveau_graph_trapped_channel(dev, &channel))
+ if (!nouveau_graph_trapped_channel(dev, &channel)) {
nouveau_fence_handler(dev, channel);
- }
-
+ }
+ } else
if (dev_priv->card_type == NV_04 &&
(nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD)) {
uint32_t class, mthd;
@@ -324,12 +322,13 @@ nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
DRM_ERROR("Unable to execute NV04 software method %x "
"for object class %x. Please report.\n",
mthd, class);
- } else {
- handled = 1;
+ unhandled = 1;
}
+ } else {
+ unhandled = 1;
}
- if (!handled)
+ if (unhandled)
nouveau_graph_dump_trap_info(dev, "PGRAPH_NOTIFY");
}