From: 黄涛 Date: Wed, 9 Apr 2014 13:34:12 +0000 (+0800) Subject: gpu: midgard: mali_kbase_pm_metrics.c init hrtimer once, fix resume bug X-Git-Tag: firefly_0821_release~5579 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=fc80c08f9f273893ba3864e6c49e53f1598e4c1b;p=firefly-linux-kernel-4.4.55.git gpu: midgard: mali_kbase_pm_metrics.c init hrtimer once, fix resume bug --- 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);