Hey! Hmm. Odd, this email never got to me directly, instead I found it
through lkml. Hopefully my mail isn't bouncing somewhere...
> > +static void delay_pit(unsigned long loops)
> > +{
> > + int d0;
> > + __asm__ __volatile__(
> > + "\tjmp 1f\n"
> > + ".align 16\n"
> > + "1:\tjmp 2f\n"
> > + ".align 16\n"
> > + "2:\tdecl %0\n\tjns 2b"
> > + :"=&a" (d0)
> > + :"0" (loops));
> > +}
> > +
>
> But... this is not using pit to do the delay, right? It is sensitive
> to CPU clock changes, pit-delay should not be.
You're right, basically I took the previous __loop_delay() and
__rtsc_delay() and moved them to delay_pit() and delay_tsc(),
respectively. I guess the naming is somewhat confusing, but since this
was meant as just a cleanup, I'm trying to use the same code in the same
conditions.(ie: when using the PIT time-source, use the loop delay. when
using the TSC time-source, use the TSC delay). A changing the name or a
comment explaining it would def clear that up.
You do bring up an interesting idea: actually using the PIT to do
__delay. I think its possible, but not really worth it, as the PIT is
such a nasty bit of hardware to deal with. I'd guess that just reading
the PIT would likely delay for more time then what was actually
requested.
Thanks for the feedback!
-john
-
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/