summaryrefslogtreecommitdiff
path: root/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2008-06-01 22:58:34 +0000
committerRichard Purdie <richard@openedhand.com>2008-06-01 22:58:34 +0000
commit47a464d97b88104c616d6ffb4a74245e43060f86 (patch)
treed28257ddc4e63b19b7c301ed66885d4fba9284ee /meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch
parentecec2e582c809368f6e53ebf9c725195a7b80784 (diff)
downloadopenembedded-core-47a464d97b88104c616d6ffb4a74245e43060f86.tar.gz
openembedded-core-47a464d97b88104c616d6ffb4a74245e43060f86.tar.bz2
openembedded-core-47a464d97b88104c616d6ffb4a74245e43060f86.tar.xz
openembedded-core-47a464d97b88104c616d6ffb4a74245e43060f86.zip
linux-rp-2.6.24: Add patches from OE.dev
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4570 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch')
-rw-r--r--meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch b/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch
new file mode 100644
index 000000000..6447a0b10
--- /dev/null
+++ b/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch
@@ -0,0 +1,41 @@
+List: linux-arm-kernel
+Subject: [PATCH] Fix PXA27x resume
+From: Russell King - ARM Linux <linux@arm.linux.org.uk>
+Date: 2008-01-21 13:53:31
+Message-ID: 20080121135331.GC30149@flint.arm.linux.org.uk
+[Download message RAW]
+
+When PXA27x wakes up, tick_resume_oneshot() tries to set a timer
+interrupt to occur immediately. Since PXA27x requires at least
+MIN_OSCR_DELTA, this causes us to flag an error.
+
+tick_program_event() then increments the next event time by
+min_delta_ns. However, by the time we get back to programming
+the next event, the OSCR has incremented such that we fail again.
+We repeatedly retry, but the OSCR is too fast for us - we never
+catch up, so we never break out of the loop - resulting in us
+never apparantly resuming.
+
+Fix this by doubling min_delta_ns.
+
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+
+diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c
+index ac0bbad..7b7c017 100644
+--- a/arch/arm/mach-pxa/time.c
++++ b/arch/arm/mach-pxa/time.c
+@@ -169,7 +169,7 @@ static void __init pxa_timer_init(void)
+ ckevt_pxa_osmr0.max_delta_ns =
+ clockevent_delta2ns(0x7fffffff, &ckevt_pxa_osmr0);
+ ckevt_pxa_osmr0.min_delta_ns =
+- clockevent_delta2ns(MIN_OSCR_DELTA, &ckevt_pxa_osmr0) + 1;
++ clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_pxa_osmr0) + 1;
+
+ cksrc_pxa_oscr0.mult =
+ clocksource_hz2mult(clock_tick_rate, cksrc_pxa_oscr0.shift);
+
+-------------------------------------------------------------------
+List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
+FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
+Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
+