X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ArmPkg%2FDrivers%2FTimerDxe%2FTimerDxe.c;fp=ArmPkg%2FDrivers%2FTimerDxe%2FTimerDxe.c;h=ccdb38c79b641c71b46728d558f177cc400a5a6e;hp=633876bea6bdced36ef7268ce3b1f2eaea465d7e;hb=33292af5f13b18ef5124f32a7bbf0b05b2d519c5;hpb=8f1cbb011faf2435fa976e61ba7e1ab46a5a09d0 diff --git a/ArmPkg/Drivers/TimerDxe/TimerDxe.c b/ArmPkg/Drivers/TimerDxe/TimerDxe.c index 633876bea6..ccdb38c79b 100644 --- a/ArmPkg/Drivers/TimerDxe/TimerDxe.c +++ b/ArmPkg/Drivers/TimerDxe/TimerDxe.c @@ -141,12 +141,13 @@ TimerDriverSetTimerPeriod ( ArmArchTimerDisableTimer (); if (TimerPeriod != 0) { - // Convert TimerPeriod to micro sec units - TimerTicks = DivU64x32 (TimerPeriod, 10); + // TimerTicks = TimerPeriod in 1ms unit x Frequency.10^-3 + // = TimerPeriod.10^-4 x Frequency.10^-3 + // = (TimerPeriod x Frequency) x 10^-7 + TimerTicks = MultU64x32 (TimerPeriod, FixedPcdGet32 (PcdArmArchTimerFreqInHz)); + TimerTicks = DivU64x32 (TimerTicks, 10000000U); - TimerTicks = MultU64x32 (TimerTicks, (PcdGet32(PcdArmArchTimerFreqInHz)/1000000)); - - ArmArchTimerSetTimerVal((UINTN)TimerTicks); + ArmArchTimerSetTimerVal ((UINTN)TimerTicks); // Enable the timer ArmArchTimerEnableTimer ();