hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/gpu/arm/mali400/mali/common/mali_group.c
....@@ -65,27 +65,23 @@
6565
6666 group = _mali_osk_calloc(1, sizeof(struct mali_group));
6767 if (NULL != group) {
68
- group->timeout_timer = _mali_osk_timer_init(mali_group_timeout);
69
- if (NULL != group->timeout_timer) {
70
- _mali_osk_timer_setcallback(group->timeout_timer, mali_group_timeout, (void *)group);
68
+ _mali_osk_timer_init(&group->timeout_timer, mali_group_timeout);
7169
72
- group->l2_cache_core[0] = core;
73
- _mali_osk_list_init(&group->group_list);
74
- _mali_osk_list_init(&group->executor_list);
75
- _mali_osk_list_init(&group->pm_domain_list);
76
- group->bcast_core = bcast;
77
- group->dlbu_core = dlbu;
70
+ group->l2_cache_core[0] = core;
71
+ _mali_osk_list_init(&group->group_list);
72
+ _mali_osk_list_init(&group->executor_list);
73
+ _mali_osk_list_init(&group->pm_domain_list);
74
+ group->bcast_core = bcast;
75
+ group->dlbu_core = dlbu;
7876
79
- /* register this object as a part of the correct power domain */
80
- if ((NULL != core) || (NULL != dlbu) || (NULL != bcast))
81
- group->pm_domain = mali_pm_register_group(domain_index, group);
77
+ /* register this object as a part of the correct power domain */
78
+ if ((NULL != core) || (NULL != dlbu) || (NULL != bcast))
79
+ group->pm_domain = mali_pm_register_group(domain_index, group);
8280
83
- mali_global_groups[mali_global_num_groups] = group;
84
- mali_global_num_groups++;
81
+ mali_global_groups[mali_global_num_groups] = group;
82
+ mali_global_num_groups++;
8583
86
- return group;
87
- }
88
- _mali_osk_free(group);
84
+ return group;
8985 }
9086
9187 return NULL;
....@@ -147,10 +143,7 @@
147143 }
148144 }
149145
150
- if (NULL != group->timeout_timer) {
151
- _mali_osk_timer_del(group->timeout_timer);
152
- _mali_osk_timer_term(group->timeout_timer);
153
- }
146
+ _mali_osk_timer_del(&group->timeout_timer);
154147
155148 if (NULL != group->bottom_half_work_mmu) {
156149 _mali_osk_wq_delete_work(group->bottom_half_work_mmu);
....@@ -879,7 +872,7 @@
879872
880873 /* Setup SW timer and record start time */
881874 group->start_time = _mali_osk_time_tickcount();
882
- _mali_osk_timer_mod(group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
875
+ _mali_osk_timer_mod(&group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
883876
884877 MALI_DEBUG_PRINT(4, ("Group: Started GP job 0x%08X on group %s at %u\n",
885878 job,
....@@ -1034,7 +1027,7 @@
10341027
10351028 /* Setup SW timer and record start time */
10361029 group->start_time = _mali_osk_time_tickcount();
1037
- _mali_osk_timer_mod(group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
1030
+ _mali_osk_timer_mod(&group->timeout_timer, _mali_osk_time_mstoticks(mali_max_job_runtime));
10381031
10391032 MALI_DEBUG_PRINT(4, ("Group: Started PP job 0x%08X part %u/%u on group %s at %u\n",
10401033 job, sub_job + 1,
....@@ -1124,7 +1117,7 @@
11241117 MALI_DEBUG_ASSERT(MALI_TRUE == group->is_working);
11251118
11261119 /* Stop/clear the timeout timer. */
1127
- _mali_osk_timer_del_async(group->timeout_timer);
1120
+ _mali_osk_timer_del_async(&group->timeout_timer);
11281121
11291122 if (NULL != group->pp_running_job) {
11301123
....@@ -1237,7 +1230,7 @@
12371230 MALI_DEBUG_ASSERT(MALI_TRUE == group->is_working);
12381231
12391232 /* Stop/clear the timeout timer. */
1240
- _mali_osk_timer_del_async(group->timeout_timer);
1233
+ _mali_osk_timer_del_async(&group->timeout_timer);
12411234
12421235 if (NULL != group->gp_running_job) {
12431236 mali_gp_update_performance_counters(group->gp_core, group->gp_running_job);
....@@ -1780,7 +1773,8 @@
17801773
17811774 static void mali_group_timeout(void *data)
17821775 {
1783
- struct mali_group *group = (struct mali_group *)data;
1776
+ _mali_osk_timer_t *timer = (_mali_osk_timer_t *)data;
1777
+ struct mali_group *group = container_of(timer, struct mali_group, timeout_timer);
17841778 MALI_DEBUG_ASSERT_POINTER(group);
17851779
17861780 MALI_DEBUG_PRINT(2, ("Group: timeout handler for %s at %u\n",