From 61598093bbdd283a7edc367d900f223070ead8d2 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Fri, 10 May 2024 07:43:03 +0000
Subject: [PATCH] add ax88772C AX88772C_eeprom_tools

---
 kernel/drivers/gpu/arm/mali400/mali/common/mali_group.c |   46 ++++++++++++++++++++++++++--------------------
 1 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/kernel/drivers/gpu/arm/mali400/mali/common/mali_group.c b/kernel/drivers/gpu/arm/mali400/mali/common/mali_group.c
index 3e76c54..47979a2 100755
--- a/kernel/drivers/gpu/arm/mali400/mali/common/mali_group.c
+++ b/kernel/drivers/gpu/arm/mali400/mali/common/mali_group.c
@@ -65,23 +65,27 @@
 
 	group = _mali_osk_calloc(1, sizeof(struct mali_group));
 	if (NULL != group) {
-		_mali_osk_timer_init(&group->timeout_timer, mali_group_timeout);
+		group->timeout_timer = _mali_osk_timer_init(mali_group_timeout);
+		if (NULL != group->timeout_timer) {
+			_mali_osk_timer_setcallback(group->timeout_timer, mali_group_timeout, (void *)group);
 
-		group->l2_cache_core[0] = core;
-		_mali_osk_list_init(&group->group_list);
-		_mali_osk_list_init(&group->executor_list);
-		_mali_osk_list_init(&group->pm_domain_list);
-		group->bcast_core = bcast;
-		group->dlbu_core = dlbu;
+			group->l2_cache_core[0] = core;
+			_mali_osk_list_init(&group->group_list);
+			_mali_osk_list_init(&group->executor_list);
+			_mali_osk_list_init(&group->pm_domain_list);
+			group->bcast_core = bcast;
+			group->dlbu_core = dlbu;
 
-		/* register this object as a part of the correct power domain */
-		if ((NULL != core) || (NULL != dlbu) || (NULL != bcast))
-			group->pm_domain = mali_pm_register_group(domain_index, group);
+			/* register this object as a part of the correct power domain */
+			if ((NULL != core) || (NULL != dlbu) || (NULL != bcast))
+				group->pm_domain = mali_pm_register_group(domain_index, group);
 
-		mali_global_groups[mali_global_num_groups] = group;
-		mali_global_num_groups++;
+			mali_global_groups[mali_global_num_groups] = group;
+			mali_global_num_groups++;
 
-		return group;
+			return group;
+		}
+		_mali_osk_free(group);
 	}
 
 	return NULL;
@@ -143,7 +147,10 @@
 		}
 	}
 
-	_mali_osk_timer_del(&group->timeout_timer);
+	if (NULL != group->timeout_timer) {
+		_mali_osk_timer_del(group->timeout_timer);
+		_mali_osk_timer_term(group->timeout_timer);
+	}
 
 	if (NULL != group->bottom_half_work_mmu) {
 		_mali_osk_wq_delete_work(group->bottom_half_work_mmu);
@@ -872,7 +879,7 @@
 
 	/* Setup SW timer and record start time */
 	group->start_time = _mali_osk_time_tickcount();
-	_mali_osk_timer_mod(&group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
+	_mali_osk_timer_mod(group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
 
 	MALI_DEBUG_PRINT(4, ("Group: Started GP job 0x%08X on group %s at %u\n",
 			     job,
@@ -1027,7 +1034,7 @@
 
 	/* Setup SW timer and record start time */
 	group->start_time = _mali_osk_time_tickcount();
-	_mali_osk_timer_mod(&group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
+	_mali_osk_timer_mod(group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
 
 	MALI_DEBUG_PRINT(4, ("Group: Started PP job 0x%08X part %u/%u on group %s at %u\n",
 			     job, sub_job + 1,
@@ -1117,7 +1124,7 @@
 	MALI_DEBUG_ASSERT(MALI_TRUE == group->is_working);
 
 	/* Stop/clear the timeout timer. */
-	_mali_osk_timer_del_async(&group->timeout_timer);
+	_mali_osk_timer_del_async(group->timeout_timer);
 
 	if (NULL != group->pp_running_job) {
 
@@ -1230,7 +1237,7 @@
 	MALI_DEBUG_ASSERT(MALI_TRUE == group->is_working);
 
 	/* Stop/clear the timeout timer. */
-	_mali_osk_timer_del_async(&group->timeout_timer);
+	_mali_osk_timer_del_async(group->timeout_timer);
 
 	if (NULL != group->gp_running_job) {
 		mali_gp_update_performance_counters(group->gp_core, group->gp_running_job);
@@ -1773,8 +1780,7 @@
 
 static void mali_group_timeout(void *data)
 {
-	_mali_osk_timer_t *timer = (_mali_osk_timer_t *)data;
-	struct mali_group *group = container_of(timer, struct mali_group, timeout_timer);
+	struct mali_group *group = (struct mali_group *)data;
 	MALI_DEBUG_ASSERT_POINTER(group);
 
 	MALI_DEBUG_PRINT(2, ("Group: timeout handler for %s at %u\n",

--
Gitblit v1.6.2