kernel/arm: fix system_time for generic timer

Change-Id: Ief7b0638f40ba5deee27f3551e8870bfb6216a4d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5569
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Fredrik Holmqvist <[email protected]>
This commit is contained in:
David Karoly
2022-08-25 12:43:59 +00:00
parent 55212b9501
commit cd5f6f2502
2 changed files with 4 additions and 2 deletions
@@ -35,7 +35,7 @@ get_counter(void)
void
ARMGenericTimer::SetTimeout(bigtime_t timeout)
{
uint32_t timeout_ticks = timeout * fTimerFrequency / 1000000;
uint32_t timeout_ticks = timeout * fTimerFrequencyMHz;
asm volatile ("ISB\n"
"MCR p15, 0, %0, c14, c2, 0"
: : "r"(timeout_ticks));
@@ -58,7 +58,7 @@ ARMGenericTimer::Clear()
bigtime_t
ARMGenericTimer::Time()
{
return get_counter() / fTimerFrequency;
return get_counter() / fTimerFrequencyMHz;
}
@@ -85,6 +85,7 @@ ARMGenericTimer::ARMGenericTimer()
&ARMGenericTimer::_InterruptWrapper, this, 0);
fTimerFrequency = get_counter_freq();
fTimerFrequencyMHz = fTimerFrequency / 1000000;
}
@@ -30,6 +30,7 @@ private:
int32 HandleInterrupt();
uint32_t fTimerFrequency;
uint32_t fTimerFrequencyMHz;
};
#endif /* ARCH_ARM_TIMER_GENERIC_H */