Re: [PATCH] arm: remove unused code in delay.S

From: Russell King - ARM Linux
Date: Thu Sep 17 2009 - 15:42:19 EST


On Thu, Sep 17, 2009 at 08:32:57PM +0100, Jamie Lokier wrote:
> Russell King - ARM Linux wrote:
> > On Tue, Sep 15, 2009 at 11:04:37PM +0200, Krzysztof Halasa wrote:
> > > Steve Chen <schen@xxxxxxxxxx> writes:
> > >
> > > > +config OLD_CPU_DELAY
> > > > + depends on CPU_32v3 || CPU_32v4 || CPU_32v4T
> > > > + bool "Accurate delays"
> > > > + def_bool n
> > > > + help
> > > > + Enable if observing longer than expected delays and need more
> > > > + accuracy. This only applies to older CPUs.
> > > > +
> > >
> > > If it's that simple then why not enable the extra delay code
> > > unconditionally when compiling for those CPUs?
> >
> > Because it's really not that clear cut. Eg, ARM610 and ARM710 work
> > better with it, but StrongARM suffers from delays being too short.
> > Having a kernel configured for all those processors used to be common
> > (since the Acorn RiscPC had pluggable CPU cards, which could be one
> > of those processors.)
> >
> > It's really something that only experienced people should worry
> > about, and not Joe "kernel-builder" Bloggs.
>
> I'm confused now. If I'm building a "generic" kernel to run on
> several different systems, including some ARM710s and some StrongARMs,
> do I include the code or not?

You should not - because with the code enabled, StrongARM will violate
the guarantee that udelay() shall return after _at_ _least_ the delay
asked for.

However, for short delays, ARM710 will provide a delay unnecessarily in
excess of the requested delay - which conforms to the required guarantee
but is not desirable for some applications (eg, where you're using
udelay() to time hardware signals for clocking data.)

> Btw, do you know where PT110 fits in? Is it like StrongARM (SA110)?

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