From cb31eaa4b3e870e4520dd0ce6f9ce326dc9cf50b Mon Sep 17 00:00:00 2001
From: Daniel Hellstrom <daniel@gaisler.com>
Date: Wed, 22 Sep 2010 17:42:29 +0200
Subject: [PATCH] sparc: leon3: Clear all unused GPTIMER registers.

Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
---
 arch/sparc/cpu/leon3/cpu_init.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/arch/sparc/cpu/leon3/cpu_init.c b/arch/sparc/cpu/leon3/cpu_init.c
index 20a6a256f0..0ce2f89dff 100644
--- a/arch/sparc/cpu/leon3/cpu_init.c
+++ b/arch/sparc/cpu/leon3/cpu_init.c
@@ -90,7 +90,7 @@ int arch_cpu_init(void)
 int cpu_init_r(void)
 {
 	ambapp_apbdev apbdev;
-	int index, cpu;
+	int index, cpu, ntimers, i;
 	ambapp_dev_gptimer *timer = NULL;
 	unsigned int bus_freq;
 
@@ -135,6 +135,14 @@ int cpu_init_r(void)
 		timer->scalar = timer->scalar_reload =
 		    (((bus_freq / 1000) + 500) / 1000) - 1;
 
+		/* Clear All Timers */
+		ntimers = timer->config & 0x7;
+		for (i = 0; i < ntimers; i++) {
+			timer->e[i].ctrl = GPTIMER_CTRL_IP;
+			timer->e[i].rld = 0;
+			timer->e[i].ctrl = GPTIMER_CTRL_LD;
+		}
+
 		index++;
 	}
 	if (!gptimer) {
-- 
2.39.5