On Tue, 1 Jan 2008 19:45:24 +0100 Ingo Molnar <[EMAIL PROTECTED]> wrote:
> > * Alan Cox <[EMAIL PROTECTED]> wrote: > > > > there strong counter-arguments against doing the clean thing and > > > adding an udelay(2) (or udelay(1)) to replace those _p() uses in > > > ISA drivers? > > > > #1 udelay has to be for the worst case bus clock (6MHz) while the > > #device may be at 10Mhz or even 12MHz ISA. So it slows it down stuff > > unneccessarily- and stuff that really really is slow enough as is. > > udelay is supposed to be reliable. If someone runs a new kernel and > has no TSC (which might happen even on modern hardware or with notsc) > _and_ finds that udelay is not calibrated well enough then that's a > kernel bug we want to fix. How do you find out the speed of the ISA bus? AFAIK there is no standardized way to do that. On the Geode SC2200 the ISA bus speed is usually the PCI clock divided by 4 giving 33MHz/4=8.3MHz or 30/4=7.5MHz, but with no external ISA devices it's possible to overclock the ISA bus to /3 to run it at 11MHz or so. But without poking at some CPU and southbridge specific registers to find out the PCI bus speed and the ISA bus divisor you can't really tell. So if you do udelay based on a 6MHz clock (I think you can safely assume that any 386 based system runs the ISA bus at least that fast) you'll waste at least 30% and maybe even 100% more time for the delay after every _p call. /Christer -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/