All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/nouveau/mc: complain loudly if we can't call a interrupt handler
@ 2013-01-17 13:10 Maarten Lankhorst
  0 siblings, 0 replies; only message in thread
From: Maarten Lankhorst @ 2013-01-17 13:10 UTC (permalink / raw)
  To: Ben Skeggs; +Cc: nouveau, dri-devel@lists.freedesktop.org

I noticed that bsp, vp and ppp had no interrupt handler after investigating why 15% of my cpu time went to interrupts.

nouveau was silent about it,  but it should be an error since we have no way of acking in that case.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>

---

fwiw, the interrupt was 10, the exit interrupt after secret scrubber finishes..
I have absolutely no idea why, as it times out on wait before the engine initialization..

Maybe just ack it from the bsp/vp/ppp interrupt handler? Or should it be part of the base fuc class..

diff --git a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c b/drivers/gpu/drm/nouveau/core/subdev/mc/base.c
index 8379aaf..16bf49c 100644
--- a/drivers/gpu/drm/nouveau/core/subdev/mc/base.c
+++ b/drivers/gpu/drm/nouveau/core/subdev/mc/base.c
@@ -36,8 +36,16 @@ nouveau_mc_intr(struct nouveau_subdev *subdev)
 	while (stat && map->stat) {
 		if (stat & map->stat) {
 			unit = nouveau_subdev(subdev, map->unit);
-			if (unit && unit->intr)
-				unit->intr(unit);
+			if (unit) {
+				if (unit->intr)
+					unit->intr(unit);
+				else if (printk_ratelimit())
+					nv_error(pmc,
+						 "%s has no interrupt handler, ignoring interrupt %x\n",
+						 unit->name, intr & map->stat);
+			} else if (printk_ratelimit())
+				nv_error(pmc, "subdev %u does not exist for interrupt %x\n",
+					 map->unit, intr & map->stat);
 			intr &= ~map->stat;
 		}
 		map++;

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-01-17 13:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-17 13:10 [PATCH] drm/nouveau/mc: complain loudly if we can't call a interrupt handler Maarten Lankhorst

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.