mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-14 12:56:00 +01:00
time: fix usec_to_tick()
Commit 8dfafdde88eb ("Introduce common timer functions") created a common definition of usec_to_tick() which had a couple problems: static unsigned long long usec_to_tick(unsigned long usec) { uint64_t tick = usec * get_tbclk(); That likely overflows. usec *= get_tbclk(); That was an attempt to fix it by performing the multiply after the promotion of usec to 64-bit, but was applied to the wrong variable, which was never used. This patch fixes these issues. A user-visible symptom of the problem was the e.g. "dhcp zImage" using an ASIX USB Ethernet dongle would print: Waiting for Ethernet connection... unable to connect. ... with no delay before "unable to connect". There are likely other symptoms. Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Rob Herring <rob.herring@calxeda.com>
This commit is contained in:
parent
74c43bb3d3
commit
2cd1b57220
@ -71,8 +71,8 @@ unsigned long __weak notrace timer_get_us(void)
|
||||
}
|
||||
static unsigned long long usec_to_tick(unsigned long usec)
|
||||
{
|
||||
uint64_t tick = usec * get_tbclk();
|
||||
usec *= get_tbclk();
|
||||
uint64_t tick = usec;
|
||||
tick *= get_tbclk();
|
||||
do_div(tick, 1000000);
|
||||
return tick;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user