diff mbox

[soc] ARM: BCM5301X: Ignore another (BCM4709 specific) fault code

Message ID 1423669258-27449-1-git-send-email-zajec5@gmail.com
State New
Headers show

Commit Message

Rafał Miłecki Feb. 11, 2015, 3:40 p.m. UTC
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>
---
 arch/arm/mach-bcm/bcm_5301x.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Florian Fainelli April 10, 2015, 7:50 p.m. UTC | #1
On 11/02/15 07:40, Rafał Miłecki wrote:
> 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>

Applied to platform/next, sorry for the lag, thanks!
Rafał Miłecki May 19, 2015, 5:09 a.m. UTC | #2
On 10 April 2015 at 21:50, Florian Fainelli <f.fainelli@gmail.com> wrote:
> On 11/02/15 07:40, Rafał Miłecki wrote:
>> 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>
>
> Applied to platform/next, sorry for the lag, thanks!

Could you send a pull request for platform/next, please?
diff mbox

Patch

diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
index e9bcbdb..7aef927 100644
--- a/arch/arm/mach-bcm/bcm_5301x.c
+++ b/arch/arm/mach-bcm/bcm_5301x.c
@@ -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;