Exynos: de-duplicate mct timer initialization

timer initialization is the first thing happening in
the Exynos CPU's bootblock code. Hence we don't need
to keep track of it in several places, and we don't
need to do it over and over again (e.g. in each stage)

BUG=none
BRANCH=none
TEST=boot tested on pit

Change-Id: I7bd9a0b7930fc9c37faabd62e3eecc3e5614a879
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: https://chromium-review.googlesource.com/168994
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
Commit-Queue: Stefan Reinauer <reinauer@chromium.org>
Tested-by: Stefan Reinauer <reinauer@chromium.org>
diff --git a/src/cpu/samsung/exynos5250/mct.c b/src/cpu/samsung/exynos5250/mct.c
index b02fc6d..bbb90e4 100644
--- a/src/cpu/samsung/exynos5250/mct.c
+++ b/src/cpu/samsung/exynos5250/mct.c
@@ -21,16 +21,8 @@
 #include <arch/io.h>
 #include "clk.h"
 
-static int enabled = 0;
-
 uint64_t mct_raw_value(void)
 {
-	if (!enabled) {
-		writel(readl(&exynos_mct->g_tcon) | (0x1 << 8),
-			&exynos_mct->g_tcon);
-		enabled = 1;
-	}
-
 	uint64_t upper = readl(&exynos_mct->g_cnt_u);
 	uint64_t lower = readl(&exynos_mct->g_cnt_l);
 
@@ -41,5 +33,4 @@
 {
 	writel(readl(&exynos_mct->g_tcon) | (0x1 << 8),
 		&exynos_mct->g_tcon);
-	enabled = 1;
 }
diff --git a/src/cpu/samsung/exynos5250/monotonic_timer.c b/src/cpu/samsung/exynos5250/monotonic_timer.c
index 267d9c3..4d30c87 100644
--- a/src/cpu/samsung/exynos5250/monotonic_timer.c
+++ b/src/cpu/samsung/exynos5250/monotonic_timer.c
@@ -22,16 +22,13 @@
 
 #include "clk.h"
 
-static int initialized;
-
 static const uint32_t clocks_per_usec = MCT_HZ/1000000;
 
 void timer_monotonic_get(struct mono_time *mt)
 {
-	if (!initialized) {
-		mct_start();
-		initialized = 1;
-	}
+	/* We don't have to call mct_start() here
+	 * because it was already called int he bootblock
+	 */
 
 	mono_time_set_usecs(mt, mct_raw_value() / clocks_per_usec);
 }
diff --git a/src/cpu/samsung/exynos5250/timer.c b/src/cpu/samsung/exynos5250/timer.c
index 0c2e641..03599ac 100644
--- a/src/cpu/samsung/exynos5250/timer.c
+++ b/src/cpu/samsung/exynos5250/timer.c
@@ -25,7 +25,9 @@
 
 void init_timer(void)
 {
-	mct_start();
+	/* Nothing to do because we manually
+	 * call mct_start() in the bootblock
+	 */
 }
 
 /* delay x useconds */
diff --git a/src/cpu/samsung/exynos5420/mct.c b/src/cpu/samsung/exynos5420/mct.c
index b02fc6d..bbb90e4 100644
--- a/src/cpu/samsung/exynos5420/mct.c
+++ b/src/cpu/samsung/exynos5420/mct.c
@@ -21,16 +21,8 @@
 #include <arch/io.h>
 #include "clk.h"
 
-static int enabled = 0;
-
 uint64_t mct_raw_value(void)
 {
-	if (!enabled) {
-		writel(readl(&exynos_mct->g_tcon) | (0x1 << 8),
-			&exynos_mct->g_tcon);
-		enabled = 1;
-	}
-
 	uint64_t upper = readl(&exynos_mct->g_cnt_u);
 	uint64_t lower = readl(&exynos_mct->g_cnt_l);
 
@@ -41,5 +33,4 @@
 {
 	writel(readl(&exynos_mct->g_tcon) | (0x1 << 8),
 		&exynos_mct->g_tcon);
-	enabled = 1;
 }
diff --git a/src/cpu/samsung/exynos5420/monotonic_timer.c b/src/cpu/samsung/exynos5420/monotonic_timer.c
index 267d9c3..4d30c87 100644
--- a/src/cpu/samsung/exynos5420/monotonic_timer.c
+++ b/src/cpu/samsung/exynos5420/monotonic_timer.c
@@ -22,16 +22,13 @@
 
 #include "clk.h"
 
-static int initialized;
-
 static const uint32_t clocks_per_usec = MCT_HZ/1000000;
 
 void timer_monotonic_get(struct mono_time *mt)
 {
-	if (!initialized) {
-		mct_start();
-		initialized = 1;
-	}
+	/* We don't have to call mct_start() here
+	 * because it was already called int he bootblock
+	 */
 
 	mono_time_set_usecs(mt, mct_raw_value() / clocks_per_usec);
 }
diff --git a/src/cpu/samsung/exynos5420/timer.c b/src/cpu/samsung/exynos5420/timer.c
index 724f43a..ddf45e7 100644
--- a/src/cpu/samsung/exynos5420/timer.c
+++ b/src/cpu/samsung/exynos5420/timer.c
@@ -25,7 +25,9 @@
 
 void init_timer(void)
 {
-	mct_start();
+	/* Nothing to do because we manually
+	 * call mct_start() in the bootblock
+	 */
 }
 
 /* delay x useconds */