diff mbox

ARM: PRIMA2: delete redundant codes to restore LATCHED when timer resumes

Message ID 1343626170-27831-1-git-send-email-Barry.Song@csr.com (mailing list archive)
State New, archived
Headers show

Commit Message

Barry Song July 30, 2012, 5:29 a.m. UTC
From: Barry Song <Baohua.Song@csr.com>

The only way to write LATCHED registers to write LATCH_BIT to LATCH register,
that will latch COUNTER into LATCHED.e.g.
writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base +
	SIRFSOC_TIMER_LATCH);

Writing values to LATCHED registers directly is useless at all.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
---
 arch/arm/mach-prima2/timer.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

Comments

Olof Johansson Aug. 2, 2012, 5:12 p.m. UTC | #1
On Mon, Jul 30, 2012 at 01:29:30PM +0800, Barry Song wrote:
> From: Barry Song <Baohua.Song@csr.com>
> 
> The only way to write LATCHED registers to write LATCH_BIT to LATCH register,
> that will latch COUNTER into LATCHED.e.g.
> writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base +
> 	SIRFSOC_TIMER_LATCH);
> 
> Writing values to LATCHED registers directly is useless at all.
> 
> Signed-off-by: Barry Song <Baohua.Song@csr.com>

Based on off-list email, applied to fixes.


Thanks,

-Olof
diff mbox

Patch

diff --git a/arch/arm/mach-prima2/timer.c b/arch/arm/mach-prima2/timer.c
index 0de592e..d95bf25 100644
--- a/arch/arm/mach-prima2/timer.c
+++ b/arch/arm/mach-prima2/timer.c
@@ -134,11 +134,11 @@  static void sirfsoc_clocksource_resume(struct clocksource *cs)
 {
 	int i;
 
-	for (i = 0; i < SIRFSOC_TIMER_REG_CNT; i++)
+	for (i = 0; i < SIRFSOC_TIMER_REG_CNT - 2; i++)
 		writel_relaxed(sirfsoc_timer_reg_val[i], sirfsoc_timer_base + sirfsoc_timer_reg_list[i]);
 
-	writel_relaxed(sirfsoc_timer_reg_val[i - 2], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_LO);
-	writel_relaxed(sirfsoc_timer_reg_val[i - 1], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_HI);
+	writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 2], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_LO);
+	writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 1], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_HI);
 }
 
 static struct clock_event_device sirfsoc_clockevent = {