lkml.org 
[lkml]   [2005]   [Nov]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 18/37] dvb: let other frontends support FE_DISHNETWORK_SEND_LEGACY_CMD
On 11/2/05, Andrew Morton wrote:
> Michael Krufky <mkrufky@m1k.net> wrote:
> >
> > +s32 timeval_usec_diff(struct timeval lasttime, struct timeval curtime)
> > +{
> > + return ((curtime.tv_usec < lasttime.tv_usec) ?
> > + 1000000 - lasttime.tv_usec + curtime.tv_usec :
> > + curtime.tv_usec - lasttime.tv_usec);
> > +}
> > +EXPORT_SYMBOL(timeval_usec_diff);
> > +
> > +static inline void timeval_usec_add(struct timeval *curtime, u32 add_usec)
> > +{
> > + curtime->tv_usec += add_usec;
> > + if (curtime->tv_usec >= 1000000) {
> > + curtime->tv_usec -= 1000000;
> > + curtime->tv_sec++;
> > + }
> > +}
>
> timeval arithmetic like this really shouldn't be hidden in a dvb driver -
> it's generic code.
> However I don't believe that the driver should be using timevals and
> do_gettimeofday() at all. Why not use jiffies-based timing like so
> many other parts of the kernel?
>
To be honest, I don't like this solution very much either. It only
works when HZ is ~1000, and even then isn't reliable for everyone who
uses this code. All this is attempting to be is a high precision 8ms
timer. Accuracy needs to be +/- 500us for the code to work. I am not
a (very good) kernel programmer, and didn't find anything that would
really fit the bill when trying to figure out how to ensure a routine
gets called every 8ms (9 times). The ktimers stuff I saw recently on
lwn would seem to work well here, but if there is a way to do it with
what is in the kernel today, I'm just not aware of how to do it. So
if someone will show me the right way (or point me in the irght
direction even), I'll be happy to rework the patch.

Thanks,
Noone
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-11-03 05:19    [W:0.041 / U:0.532 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site