Factor out TimerKHz and ShiftTSC calculation to tsctimer_configure().

Signed-off-by: Gerd Hoffmann <[email protected]>
---
 src/hw/timer.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/hw/timer.c b/src/hw/timer.c
index bdcb3bfca211..ce3d63cd75f6 100644
--- a/src/hw/timer.c
+++ b/src/hw/timer.c
@@ -58,6 +58,18 @@ u8 ShiftTSC VARFSEG;
  * Internal timer setup
  ****************************************************************/
 
+static void
+tsctimer_configure(u64 t)
+{
+    while (t >= (1<<24)) {
+        ShiftTSC++;
+        t = (t + 1) >> 1;
+    }
+    TimerKHz = DIV_ROUND_UP((u32)t, 1000 * PMTIMER_TO_PIT);
+    TimerPort = 0;
+    dprintf(1, "CPU Mhz=%u\n", (TimerKHz << ShiftTSC) / 1000);
+}
+
 #define CALIBRATE_COUNT 0x800   // Approx 1.7ms
 
 // Calibrate the CPU time-stamp-counter
@@ -87,14 +99,7 @@ tsctimer_setup(void)
     dprintf(6, "tsc calibrate start=%u end=%u diff=%u\n"
             , (u32)start, (u32)end, (u32)diff);
     u64 t = DIV_ROUND_UP(diff * PMTIMER_HZ, CALIBRATE_COUNT);
-    while (t >= (1<<24)) {
-        ShiftTSC++;
-        t = (t + 1) >> 1;
-    }
-    TimerKHz = DIV_ROUND_UP((u32)t, 1000 * PMTIMER_TO_PIT);
-    TimerPort = 0;
-
-    dprintf(1, "CPU Mhz=%u\n", (TimerKHz << ShiftTSC) / 1000);
+    tsctimer_configure(t);
 }
 
 // Setup internal timers.
-- 
2.18.2
_______________________________________________
SeaBIOS mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to