diff options
author | John Stultz <john.stultz@linaro.org> | 2018-03-30 14:17:42 -0700 |
---|---|---|
committer | Yongqin Liu <yongqin.liu@linaro.org> | 2020-04-08 11:58:43 +0800 |
commit | 43594ba54e7735426769d8a3ff7aa8ee6bcf2526 (patch) | |
tree | 5719458c88a833117b8bf298ffe593c1e1bc1cb0 | |
parent | 718a467d11f4644fdbbef1ed8a562b041b4ab278 (diff) | |
download | hikey-modules-43594ba54e7735426769d8a3ff7aa8ee6bcf2526.tar.gz |
MALI: Timer api fixups for 4.15-rc
As of 4.15-rc, the timer api has changed, so this fixes
up the usage in the mali driver.
Signed-off-by: John Stultz <john.stultz@linaro.org>
-rw-r--r-- | utgard/common/mali_control_timer.c | 2 | ||||
-rw-r--r-- | utgard/common/mali_group.c | 8 | ||||
-rw-r--r-- | utgard/common/mali_osk_types.h | 8 | ||||
-rw-r--r-- | utgard/linux/mali_osk_timers.c | 8 |
4 files changed, 14 insertions, 12 deletions
diff --git a/utgard/common/mali_control_timer.c b/utgard/common/mali_control_timer.c index 1296ffe..bfe975f 100644 --- a/utgard/common/mali_control_timer.c +++ b/utgard/common/mali_control_timer.c @@ -28,7 +28,7 @@ void mali_control_timer_add(u32 timeout) _mali_osk_timer_add(mali_control_timer, _mali_osk_time_mstoticks(timeout)); } -static void mali_control_timer_callback(void *arg) +static void mali_control_timer_callback(struct timer_list *t) { if (mali_utilization_enabled()) { struct mali_gpu_utilization_data *util_data = NULL; diff --git a/utgard/common/mali_group.c b/utgard/common/mali_group.c index e9005e1..4a43753 100644 --- a/utgard/common/mali_group.c +++ b/utgard/common/mali_group.c @@ -44,7 +44,7 @@ int mali_max_job_runtime = MALI_MAX_JOB_RUNTIME_DEFAULT; static void mali_group_bottom_half_mmu(void *data); static void mali_group_bottom_half_gp(void *data); static void mali_group_bottom_half_pp(void *data); -static void mali_group_timeout(void *data); +static void mali_group_timeout(struct timer_list *t); static void mali_group_reset_pp(struct mali_group *group); static void mali_group_reset_mmu(struct mali_group *group); @@ -1761,9 +1761,11 @@ static void mali_group_bottom_half_pp(void *data) 0xFFFFFFFF, 0); } -static void mali_group_timeout(void *data) +static void mali_group_timeout(struct timer_list *t) { - struct mali_group *group = (struct mali_group *)data; + _mali_osk_timer_t *tim = container_of(t, _mali_osk_timer_t, timer); + struct mali_group *group = container_of(&tim, struct mali_group, timeout_timer); + MALI_DEBUG_ASSERT_POINTER(group); MALI_DEBUG_PRINT(2, ("Group: timeout handler for %s at %u\n", diff --git a/utgard/common/mali_osk_types.h b/utgard/common/mali_osk_types.h index 03161cf..c9d0fec 100644 --- a/utgard/common/mali_osk_types.h +++ b/utgard/common/mali_osk_types.h @@ -50,6 +50,7 @@ typedef unsigned long long u64; #include <linux/types.h> #endif +#include <linux/timer.h> /** @brief Mali Boolean type which uses MALI_TRUE and MALI_FALSE */ typedef unsigned long mali_bool; @@ -395,7 +396,12 @@ typedef struct _mali_osk_notification_t_struct { * by any callers of _mali_osk_timer_del(). Otherwise, a deadlock may occur. * * @param arg Function-specific data */ -typedef void (*_mali_osk_timer_callback_t)(void *arg); +typedef void (*_mali_osk_timer_callback_t)(struct timer_list *t); + + +struct _mali_osk_timer_t_struct { + struct timer_list timer; +}; /** @brief Private type for Timer Callback Objects */ typedef struct _mali_osk_timer_t_struct _mali_osk_timer_t; diff --git a/utgard/linux/mali_osk_timers.c b/utgard/linux/mali_osk_timers.c index e5d7238..54bb75e 100644 --- a/utgard/linux/mali_osk_timers.c +++ b/utgard/linux/mali_osk_timers.c @@ -18,16 +18,11 @@ #include "mali_osk.h" #include "mali_kernel_common.h" -struct _mali_osk_timer_t_struct { - struct timer_list timer; -}; - typedef void (*timer_timeout_function_t)(unsigned long); _mali_osk_timer_t *_mali_osk_timer_init(void) { _mali_osk_timer_t *t = (_mali_osk_timer_t *)kmalloc(sizeof(_mali_osk_timer_t), GFP_KERNEL); - if (NULL != t) init_timer(&t->timer); return t; } @@ -65,8 +60,7 @@ mali_bool _mali_osk_timer_pending(_mali_osk_timer_t *tim) void _mali_osk_timer_setcallback(_mali_osk_timer_t *tim, _mali_osk_timer_callback_t callback, void *data) { MALI_DEBUG_ASSERT_POINTER(tim); - tim->timer.data = (unsigned long)data; - tim->timer.function = (timer_timeout_function_t)callback; + timer_setup(&tim->timer, callback, 0); } void _mali_osk_timer_term(_mali_osk_timer_t *tim) |