1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-26 09:57:42 +02:00
openwrt-xburst/target/linux/s3c24xx/patches-2.6.24/1007-resume-timers-wq.patch.patch
mirko fc54b9bf15 changed Makefile and profiles, added patches for kernel 2.6.24
(stable-branch of Openmoko)


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13613 3c298f89-4303-0410-b956-a3cf2f4a3e73
2008-12-12 11:58:53 +00:00

46 lines
1.3 KiB
Diff

From fa1e8c2fc849472cddb65bc3138944382b320589 Mon Sep 17 00:00:00 2001
From: mokopatches <mokopatches@openmoko.org>
Date: Fri, 4 Apr 2008 11:30:15 +0100
Subject: [PATCH] resume-timers-wq.patch
The initialization of clocks uses mutexes, but we execute the resume in
an interrupt context. We therefore have to hand this task to a non-interrupt.
Adapted from a patch by Andy Green.
---
arch/arm/plat-s3c24xx/time.c | 18 +++++++++++++++++-
1 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/arch/arm/plat-s3c24xx/time.c b/arch/arm/plat-s3c24xx/time.c
index 2ec1daa..c11d0dd 100644
--- a/arch/arm/plat-s3c24xx/time.c
+++ b/arch/arm/plat-s3c24xx/time.c
@@ -255,8 +255,24 @@ static void __init s3c2410_timer_init (void)
setup_irq(IRQ_TIMER4, &s3c2410_timer_irq);
}
+static void s3c2410_timer_resume_work(struct work_struct *work)
+{
+ s3c2410_timer_setup();
+}
+
+static void s3c2410_timer_resume(void)
+{
+ static DECLARE_WORK(work, s3c2410_timer_resume_work);
+ int res;
+
+ res = schedule_work(&work);
+ if (!res)
+ printk(KERN_ERR
+ "s3c2410_timer_resume_work already queued ???\n");
+}
+
struct sys_timer s3c24xx_timer = {
.init = s3c2410_timer_init,
.offset = s3c2410_gettimeoffset,
- .resume = s3c2410_timer_setup
+ .resume = s3c2410_timer_resume,
};
--
1.5.6.5