From: 陈恒明 Date: Tue, 27 Sep 2011 08:29:39 +0000 (+0800) Subject: rk29: vpu_service: fix bug on power on and power maintain timer X-Git-Tag: firefly_0821_release~9766^2~46 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=555bedaaaeecab6f03213d79183d831b2d56a576;p=firefly-linux-kernel-4.4.55.git rk29: vpu_service: fix bug on power on and power maintain timer operation conflict --- 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(); } }