On Fri, Dec 13, 2013 at 07:01:07AM +0000, Alexey Brodkin wrote:

> Hi Tom,
> 
> On Mon, 2013-12-09 at 16:57 +0400, Alexey Brodkin wrote:
> > Current implementation works fine if "usec * get_tbclk()" fits in 32
> > bits. Otherwise result will be cut down to 32-bit.
> > 
> > Fix is obvious - first extend data type of either operand.
> > 
> > Signed-off-by: Alexey Brodkin <abrod...@synopsys.com>
> > 
> > Cc: Rob Herring <rob.herr...@calxeda.com>
> > Cc: Mischa Jonker <mjon...@synopsys.com>
> > ---
> >  lib/time.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/lib/time.c b/lib/time.c
> > index 09bb05a..80003c3 100644
> > --- a/lib/time.c
> > +++ b/lib/time.c
> > @@ -71,7 +71,7 @@ unsigned long __weak notrace timer_get_us(void)
> >  }
> >  static unsigned long long usec_to_tick(unsigned long usec)
> >  {
> > -   uint64_t tick = usec * get_tbclk();
> > +   uint64_t tick = (uint64_t)usec * get_tbclk();
> >     usec *= get_tbclk();
> >     do_div(tick, 1000000);
> >     return tick;
> 
> Any chance to get it applied?

Yes, it's on my TODO list shortly, thanks.

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to