From 77d32b179661739ce9a7e59141338c460da54e47 Mon Sep 17 00:00:00 2001 From: Kun Qin Date: Thu, 10 Oct 2024 15:21:36 -0700 Subject: ArmPkg: TimerDxe: Use 64bit operation for timer ticks The current implementation operates on 64bit value with implicit value truncation. This change updates the involved frequencies to use 64 bit based operations. Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Sami Mujawar Signed-off-by: Kun Qin --- ArmPkg/Drivers/TimerDxe/TimerDxe.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ArmPkg/Drivers/TimerDxe/TimerDxe.c b/ArmPkg/Drivers/TimerDxe/TimerDxe.c index 1559b323eb..37859e178e 100644 --- a/ArmPkg/Drivers/TimerDxe/TimerDxe.c +++ b/ArmPkg/Drivers/TimerDxe/TimerDxe.c @@ -143,8 +143,7 @@ TimerDriverSetTimerPeriod ( // mTimerTicks = TimerPeriod in 1ms unit x Frequency.10^-3 // = TimerPeriod.10^-4 x Frequency.10^-3 // = (TimerPeriod x Frequency) x 10^-7 - TimerTicks = MultU64x32 (TimerPeriod, ArmGenericTimerGetTimerFreq ()); - TimerTicks = DivU64x32 (TimerTicks, 10000000U); + TimerTicks = TimerPeriod * ArmGenericTimerGetTimerFreq () / 10000000U; // Raise TPL to update the mTimerTicks and mTimerPeriod to ensure these values // are coherent in the interrupt handler -- cgit