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:
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user