From 555bedaaaeecab6f03213d79183d831b2d56a576 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=99=88=E6=81=92=E6=98=8E?= Date: Tue, 27 Sep 2011 16:29:39 +0800 Subject: [PATCH] rk29: vpu_service: fix bug on power on and power maintain timer operation conflict --- arch/arm/mach-rk29/vpu_service.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-rk29/vpu_service.c b/arch/arm/mach-rk29/vpu_service.c index 6c26538a6231..2f70a8331d8d 100644 --- a/arch/arm/mach-rk29/vpu_service.c +++ b/arch/arm/mach-rk29/vpu_service.c @@ -274,6 +274,7 @@ static void vpu_service_power_maintain(void) static void vpu_service_power_on(void) { + spin_lock_bh(&service.lock); if (!service.enabled) { service.enabled = true; printk("vpu: power on\n"); @@ -289,7 +290,9 @@ static void vpu_service_power_on(void) service.timer.expires = jiffies + POWER_OFF_DELAY; service.timer.function = vpu_service_power_off_work_func; add_timer(&service.timer); + spin_unlock_bh(&service.lock); } else { + spin_unlock_bh(&service.lock); vpu_service_power_maintain(); } } -- 2.34.1