32x: avoid unnecessary logging
authornotaz <notasas@gmail.com>
Wed, 14 Aug 2013 23:12:52 +0000 (02:12 +0300)
committernotaz <notasas@gmail.com>
Thu, 15 Aug 2013 17:08:27 +0000 (20:08 +0300)
pico/32x/sh2soc.c

index bdf349f..daa48da 100644 (file)
@@ -150,6 +150,10 @@ static void dmac_trigger(SH2 *sh2, struct dma_chan *chan)
     return;
   }
 
+  // DREQ1
+  if ((chan->dar & 0xc7fffff0) == 0x00004030)
+    return;
+
   elprintf(EL_32XP|EL_ANOMALY, "unhandled DMA: "
     "%08x->%08x, cnt %d, chcr %04x @%06x",
     chan->sar, chan->dar, chan->tcr, chan->chcr, sh2->pc);
@@ -497,8 +501,19 @@ void p32x_dreq1_trigger(void)
     hit = 1;
   }
 
-  if (!hit)
-    elprintf(EL_32XP|EL_ANOMALY, "dreq1: nobody cared");
+  // debug
+#if (EL_LOGMASK & (EL_32XP|EL_ANOMALY))
+  {
+    static int miss_count;
+    if (!hit) {
+      if (++miss_count == 4)
+        elprintf(EL_32XP|EL_ANOMALY, "dreq1: nobody cared");
+    }
+    else
+      miss_count = 0;
+  }
+#endif
+  (void)hit;
 }
 
 // vim:shiftwidth=2:ts=2:expandtab