From c1008104adcd45faad2c6c1a2192c86447f3d9a3 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Mon, 5 Nov 2007 02:35:56 +1100 Subject: [PATCH] nouveau: only pass annoying messages if irq isn't handled fully. --- shared-core/nouveau_irq.c | 17 ++++++++--------- 1 file 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"); }