From 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Thu, 16 May 2024 03:11:33 +0000
Subject: [PATCH] AX88772C_eeprom and ax8872c build together

---
 kernel/drivers/gpu/arm/bifrost/gpu/backend/mali_kbase_gpu_fault_csf.c |   85 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 80 insertions(+), 5 deletions(-)

diff --git a/kernel/drivers/gpu/arm/bifrost/gpu/backend/mali_kbase_gpu_fault_csf.c b/kernel/drivers/gpu/arm/bifrost/gpu/backend/mali_kbase_gpu_fault_csf.c
index f6784f1..60ba9be 100644
--- a/kernel/drivers/gpu/arm/bifrost/gpu/backend/mali_kbase_gpu_fault_csf.c
+++ b/kernel/drivers/gpu/arm/bifrost/gpu/backend/mali_kbase_gpu_fault_csf.c
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
 /*
  *
- * (C) COPYRIGHT 2019-2021 ARM Limited. All rights reserved.
+ * (C) COPYRIGHT 2019-2023 ARM Limited. All rights reserved.
  *
  * This program is free software and is provided to you under the terms of the
  * GNU General Public License version 2 as published by the Free Software
@@ -20,7 +20,7 @@
  */
 
 #include <mali_kbase.h>
-#include <uapi/gpu/arm/bifrost/csf/mali_gpu_csf_registers.h>
+#include <csf/mali_kbase_csf_registers.h>
 #include <gpu/mali_kbase_gpu_fault.h>
 
 const char *kbase_gpu_exception_name(u32 const exception_code)
@@ -42,14 +42,18 @@
 	case CS_FATAL_EXCEPTION_TYPE_CS_ENDPOINT_FAULT:
 		e = "FATAL_CS_ENDPOINT_FAULT";
 		break;
-	case CS_FATAL_EXCEPTION_TYPE_CS_BUS_FAULT:
-		e = "FATAL_CS_BUS_FAULT";
-		break;
 	case CS_FATAL_EXCEPTION_TYPE_CS_INVALID_INSTRUCTION:
 		e = "FATAL_CS_INVALID_INSTRUCTION";
 		break;
 	case CS_FATAL_EXCEPTION_TYPE_CS_CALL_STACK_OVERFLOW:
 		e = "FATAL_CS_CALL_STACK_OVERFLOW";
+		break;
+	/*
+	 * CS_FAULT_EXCEPTION_TYPE_CS_BUS_FAULT and CS_FATAL_EXCEPTION_TYPE_CS_BUS_FAULT share the same error code
+	 * Type of CS_BUS_FAULT will be differentiated by CSF exception handler
+	 */
+	case CS_FAULT_EXCEPTION_TYPE_CS_BUS_FAULT:
+		e = "CS_BUS_FAULT";
 		break;
 	/* Shader exceptions */
 	case CS_FAULT_EXCEPTION_TYPE_INSTR_INVALID_PC:
@@ -60,6 +64,10 @@
 		break;
 	case CS_FAULT_EXCEPTION_TYPE_INSTR_BARRIER_FAULT:
 		e = "INSTR_BARRIER_FAULT";
+		break;
+	/* Iterator exceptions */
+	case CS_FAULT_EXCEPTION_TYPE_KABOOM:
+		e = "KABOOM";
 		break;
 	/* Misc exceptions */
 	case CS_FAULT_EXCEPTION_TYPE_DATA_INVALID_FAULT:
@@ -78,6 +86,9 @@
 	case CS_FATAL_EXCEPTION_TYPE_FIRMWARE_INTERNAL_ERROR:
 		e = "FIRMWARE_INTERNAL_ERROR";
 		break;
+	case CS_FATAL_EXCEPTION_TYPE_CS_UNRECOVERABLE:
+		e = "CS_UNRECOVERABLE";
+		break;
 	case CS_FAULT_EXCEPTION_TYPE_RESOURCE_EVICTION_TIMEOUT:
 		e = "RESOURCE_EVICTION_TIMEOUT";
 		break;
@@ -94,6 +105,70 @@
 	case GPU_FAULTSTATUS_EXCEPTION_TYPE_GPU_CACHEABILITY_FAULT:
 		e = "GPU_CACHEABILITY_FAULT";
 		break;
+	/* MMU Fault */
+	case CS_FAULT_EXCEPTION_TYPE_TRANSLATION_FAULT_L0:
+		e = "TRANSLATION_FAULT at level 0";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_TRANSLATION_FAULT_L1:
+		e = "TRANSLATION_FAULT at level 1";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_TRANSLATION_FAULT_L2:
+		e = "TRANSLATION_FAULT at level 2";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_TRANSLATION_FAULT_L3:
+		e = "TRANSLATION_FAULT at level 3";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_TRANSLATION_FAULT_L4:
+		e = "TRANSLATION_FAULT";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_PERMISSION_FAULT_0:
+		e = "PERMISSION_FAULT at level 0";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_PERMISSION_FAULT_1:
+		e = "PERMISSION_FAULT at level 1";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_PERMISSION_FAULT_2:
+		e = "PERMISSION_FAULT at level 2";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_PERMISSION_FAULT_3:
+		e = "PERMISSION_FAULT at level 3";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ACCESS_FLAG_1:
+		e = "ACCESS_FLAG at level 1";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ACCESS_FLAG_2:
+		e = "ACCESS_FLAG at level 2";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ACCESS_FLAG_3:
+		e = "ACCESS_FLAG at level 3";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ADDRESS_SIZE_FAULT_IN:
+		e = "ADDRESS_SIZE_FAULT_IN";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ADDRESS_SIZE_FAULT_OUT_0:
+		e = "ADDRESS_SIZE_FAULT_OUT_0 at level 0";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ADDRESS_SIZE_FAULT_OUT_1:
+		e = "ADDRESS_SIZE_FAULT_OUT_1 at level 1";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ADDRESS_SIZE_FAULT_OUT_2:
+		e = "ADDRESS_SIZE_FAULT_OUT_2 at level 2";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_ADDRESS_SIZE_FAULT_OUT_3:
+		e = "ADDRESS_SIZE_FAULT_OUT_3 at level 3";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_MEMORY_ATTRIBUTE_FAULT_0:
+		e = "MEMORY_ATTRIBUTE_FAULT_0 at level 0";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_MEMORY_ATTRIBUTE_FAULT_1:
+		e = "MEMORY_ATTRIBUTE_FAULT_1 at level 1";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_MEMORY_ATTRIBUTE_FAULT_2:
+		e = "MEMORY_ATTRIBUTE_FAULT_2 at level 2";
+		break;
+	case CS_FAULT_EXCEPTION_TYPE_MEMORY_ATTRIBUTE_FAULT_3:
+		e = "MEMORY_ATTRIBUTE_FAULT_3 at level 3";
+		break;
 	/* Any other exception code is unknown */
 	default:
 		e = "UNKNOWN";

--
Gitblit v1.6.2