From e110c4fe44edc34addee4839a1d20c0fbb076ad4 Mon Sep 17 00:00:00 2001
From: Graeme Russ <graeme.russ@gmail.com>
Date: Fri, 15 Jul 2011 02:18:56 +0000
Subject: [PATCH] Timer: Allow reset_timer() only for systems with low
 resolution timers

---
 drivers/block/mg_disk.c         | 2 ++
 drivers/mtd/cfi_flash.c         | 4 ++++
 include/configs/PCI5441.h       | 1 +
 include/configs/PK1C20.h        | 1 +
 include/configs/nios2-generic.h | 1 +
 5 files changed, 9 insertions(+)

diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c
index f9e175dcb8..4407006a6f 100644
--- a/drivers/block/mg_disk.c
+++ b/drivers/block/mg_disk.c
@@ -91,7 +91,9 @@ static unsigned int mg_wait (u32 expect, u32 msec)
 	u32 from, cur, err;
 
 	err = MG_ERR_NONE;
+#ifdef CONFIG_SYS_LOW_RES_TIMER
 	reset_timer();
+#endif
 	from = get_timer(0);
 
 	status = readb(mg_base() + MG_REG_STATUS);
diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
index 929f9a9d73..ac91dfd953 100644
--- a/drivers/mtd/cfi_flash.c
+++ b/drivers/mtd/cfi_flash.c
@@ -573,7 +573,9 @@ static int flash_status_check (flash_info_t * info, flash_sect_t sector,
 #endif
 
 	/* Wait for command completion */
+#ifdef CONFIG_SYS_LOW_RES_TIMER
 	reset_timer();
+#endif
 	start = get_timer (0);
 	while (flash_is_busy (info, sector)) {
 		if (get_timer (start) > tout) {
@@ -662,7 +664,9 @@ static int flash_status_poll(flash_info_t *info, void *src, void *dst,
 #endif
 
 	/* Wait for command completion */
+#ifdef CONFIG_SYS_LOW_RES_TIMER
 	reset_timer();
+#endif
 	start = get_timer(0);
 	while (1) {
 		switch (info->portwidth) {
diff --git a/include/configs/PCI5441.h b/include/configs/PCI5441.h
index 70775e75fb..ae5bc2efea 100644
--- a/include/configs/PCI5441.h
+++ b/include/configs/PCI5441.h
@@ -118,6 +118,7 @@
  * TMRMS represents the desired mecs per tick (msecs per interrupt).
  *----------------------------------------------------------------------*/
 #define CONFIG_SYS_HZ			1000	/* Always 1000 */
+#define CONFIG_SYS_LOW_RES_TIMER
 #define CONFIG_SYS_NIOS_TMRBASE	0x00920860	/* Tick timer base addr	*/
 #define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num */
 #define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period (msec)*/
diff --git a/include/configs/PK1C20.h b/include/configs/PK1C20.h
index b466c4b05a..95c30ccde6 100644
--- a/include/configs/PK1C20.h
+++ b/include/configs/PK1C20.h
@@ -128,6 +128,7 @@
  * TMRMS represents the desired mecs per tick (msecs per interrupt).
  *----------------------------------------------------------------------*/
 #define CONFIG_SYS_HZ			1000	/* Always 1000 */
+#define CONFIG_SYS_LOW_RES_TIMER
 #define CONFIG_SYS_NIOS_TMRBASE	0x02120820	/* Tick timer base addr */
 #define CONFIG_SYS_NIOS_TMRIRQ		3	/* Timer IRQ num */
 #define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period */
diff --git a/include/configs/nios2-generic.h b/include/configs/nios2-generic.h
index 53f2084d9f..d57d53cca5 100644
--- a/include/configs/nios2-generic.h
+++ b/include/configs/nios2-generic.h
@@ -52,6 +52,7 @@
 /*
  * TIMER
  */
+#define CONFIG_SYS_LOW_RES_TIMER
 #define CONFIG_SYS_NIOS_TMRBASE	CONFIG_SYS_TIMER_BASE
 #define CONFIG_SYS_NIOS_TMRIRQ		CONFIG_SYS_TIMER_IRQ
 #define CONFIG_SYS_HZ			1000	/* Always 1000 */
-- 
2.39.5