ARM: BCM5301X: Ignore another (BCM4709 specific) fault code
authorRafał Miłecki <zajec5@gmail.com>
Wed, 11 Feb 2015 15:40:58 +0000 (16:40 +0100)
committerFlorian Fainelli <f.fainelli@gmail.com>
Wed, 20 May 2015 21:07:16 +0000 (14:07 -0700)
Broadcom ARM devices seem to generate some fault once per boot. We
already have an ignoring handler for BCM4707/BCM4708, but BCM4709
generates different code.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm/mach-bcm/bcm_5301x.c

index e9bcbdbce55550e04e83a792d55b2eba65f94c32..7aef92720eb4fc126b67b176e0bd3ab79d254957 100644 (file)
@@ -18,15 +18,16 @@ static bool first_fault = true;
 static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
                                 struct pt_regs *regs)
 {
-       if (fsr == 0x1c06 && first_fault) {
+       if ((fsr == 0x1406 || fsr == 0x1c06) && first_fault) {
                first_fault = false;
 
                /*
-                * These faults with code 0x1c06 happens for no good reason,
-                * possibly left over from the CFE boot loader.
+                * These faults with codes 0x1406 (BCM4709) or 0x1c06 happens
+                * for no good reason, possibly left over from the CFE boot
+                * loader.
                 */
                pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
-               addr, fsr);
+                       addr, fsr);
 
                /* Returning non-zero causes fault display and panic */
                return 0;