From fc80c08f9f273893ba3864e6c49e53f1598e4c1b Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Wed, 9 Apr 2014 21:34:12 +0800 Subject: [PATCH] gpu: midgard: mali_kbase_pm_metrics.c init hrtimer once, fix resume bug --- drivers/gpu/arm/midgard/mali_kbase_pm_metrics.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/arm/midgard/mali_kbase_pm_metrics.c b/drivers/gpu/arm/midgard/mali_kbase_pm_metrics.c index 50450ed6dc3a..191fd33d4117 100755 --- a/drivers/gpu/arm/midgard/mali_kbase_pm_metrics.c +++ b/drivers/gpu/arm/midgard/mali_kbase_pm_metrics.c @@ -62,6 +62,8 @@ static enum hrtimer_restart dvfs_callback(struct hrtimer *timer) mali_error kbasep_pm_metrics_init(kbase_device *kbdev) { + static bool timer_inited = false; + KBASE_DEBUG_ASSERT(kbdev != NULL); kbdev->pm.metrics.kbdev = kbdev; @@ -76,7 +78,10 @@ mali_error kbasep_pm_metrics_init(kbase_device *kbdev) spin_lock_init(&kbdev->pm.metrics.lock); - hrtimer_init(&kbdev->pm.metrics.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + if (!timer_inited) { + hrtimer_init(&kbdev->pm.metrics.timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); + timer_inited = true; + } kbdev->pm.metrics.timer.function = dvfs_callback; hrtimer_start(&kbdev->pm.metrics.timer, HR_TIMER_DELAY_MSEC(kbdev->pm.platform_dvfs_frequency), HRTIMER_MODE_REL); -- 2.34.1