From 9eff3cb5ad3afdcb429a2302e0ec303b07cb5604 Mon Sep 17 00:00:00 2001 From: Stanislav Brabec Date: Fri, 15 Feb 2008 13:12:49 +0000 Subject: Added PXA27x resume fix from Russell King to linux-rp-2.6.24. --- packages/linux/linux-rp-2.6.24/pxa27x-resume.patch | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 packages/linux/linux-rp-2.6.24/pxa27x-resume.patch (limited to 'packages/linux/linux-rp-2.6.24/pxa27x-resume.patch') diff --git a/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch b/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch new file mode 100644 index 0000000000..6447a0b104 --- /dev/null +++ b/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 +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 + +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 + -- cgit v1.2.3