Don't we need this on 2008R1 branch as well?

-Michael

________________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Tuesday, September 16, 2008 7:40 PM
To: [email protected]
Subject: [Linux-kernel-commits] [5298] trunk/arch/blackfin: Fix [#4426]
- make sure that we clear the EBIU_ERRMST (necessary on BF54x)

Revision
5298
Author
rgetz
Date
2008-09-16 12:39:34 -0500 (Tue, 16 Sep 2008)
Log Message
Fix [#4426] - make sure that we clear the EBIU_ERRMST (necessary on
BF54x)
Modified Paths
* trunk/arch/blackfin/kernel/traps.c
* trunk/arch/blackfin/mach-common/interrupt.S
Diff
Modified: trunk/arch/blackfin/kernel/traps.c (5297 => 5298)

--- trunk/arch/blackfin/kernel/traps.c  2008-09-16 11:16:41 UTC (rev
5297)
+++ trunk/arch/blackfin/kernel/traps.c  2008-09-16 17:39:34 UTC (rev
5298)
@@ -1028,8 +1028,19 @@
        printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n",
print_tainted());
        printk(KERN_NOTICE " SEQSTAT: %08lx  IPEND: %04lx  SYSCFG:
%04lx\n",
                (long)fp->seqstat, fp->ipend, fp->syscfg);
-       printk(KERN_NOTICE "  HWERRCAUSE: 0x%lx\n",
-               (fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14);
+       if ((fp->seqstat & SEQSTAT_EXCAUSE) == VEC_HWERR) {
+               printk(KERN_NOTICE "  HWERRCAUSE: 0x%lx\n",
+                       (fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14);
+#ifdef EBIU_ERRMST
+               /* If the error was from the EBIU, print it out */
+               if (bfin_read_EBIU_ERRMST() & CORE_ERROR) {
+                       printk(KERN_NOTICE "  EBIU Error Reason  :
0x%04x\n",
+                               bfin_read_EBIU_ERRMST());
+                       printk(KERN_NOTICE "  EBIU Error Address :
0x%08x\n",
+                               bfin_read_EBIU_ERRADD());
+               }
+#endif
+       }
        printk(KERN_NOTICE "  EXCAUSE   : 0x%lx\n",
                fp->seqstat & SEQSTAT_EXCAUSE);
        for (i = 6; i <= 15 ; i++) {
Modified: trunk/arch/blackfin/mach-common/interrupt.S (5297 => 5298)

--- trunk/arch/blackfin/mach-common/interrupt.S 2008-09-16 11:16:41 UTC
(rev 5297)
+++ trunk/arch/blackfin/mach-common/interrupt.S 2008-09-16 17:39:34 UTC
(rev 5298)
@@ -179,7 +179,16 @@
        call _trap_c;
        SP += 12;
 
+#ifdef EBIU_ERRMST
+       /* make sure EBIU_ERRMST is clear */
+       p0.l = LO(EBIU_ERRMST);
+       p0.h = HI(EBIU_ERRMST);
+       r0.l = (CORE_ERROR | CORE_MERROR);
+       w[p0] = r0.l;
+#endif
+
        call _ret_from_exception;
+
 .Lcommon_restore_all_sys:
        RESTORE_ALL_SYS
        rti;

_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to