drivers: edac: Add Cache Error Reporting driver for Kryo3xx processors

Cache Error Reporting driver receives error interrupts for Single Bit and
Double Bit Errors, checks the corresponding syndrome registers and takes
action based on configuration options. Optional polling of syndrome
registers with single error and double bit errors configurable as panic.

Change-Id: I025037da5c5ac6f5520b683af69c462663c1e4f0
Signed-off-by: Kyle Yan <kyan@codeaurora.org>
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 05d2bd7..ed3c7bb 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -38,6 +38,7 @@
 #include <asm/system_misc.h>
 #include <asm/pgtable.h>
 #include <asm/tlbflush.h>
+#include <asm/kryo3xx-arm64-edac.h>
 
 static const char *fault_name(unsigned int esr);
 
@@ -477,6 +478,7 @@
  */
 static int do_bad(unsigned long addr, unsigned int esr, struct pt_regs *regs)
 {
+	kryo3xx_poll_cache_errors(NULL);
 	return 1;
 }