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

Russell King - ARM Linux linux at arm.linux.org.uk
Mon Sep 14 10:00:59 EDT 2009


On Mon, Sep 14, 2009 at 03:58:24PM +0300, Felipe Contreras wrote:
> On Mon, Sep 14, 2009 at 11:10 AM, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
> > On Mon, Sep 14, 2009 at 01:21:00AM +0100, Jamie Lokier wrote:
> >> Russell King - ARM Linux wrote:
> >> > On Sun, Sep 13, 2009 at 11:28:47PM +0200, Marek Vasut wrote:
> >> > > >                 bhi     __delay
> >> > > >                 mov     pc, lr
> >> > > >  ENDPROC(__udelay)
> >> > > >
> >> > > Hi
> >> > >
> >> > > why was this code there in the first place ?
> >> >
> >> > To make the delay loop more stable and predictable on older CPUs.
> >>
> >> So why has it been commented out, if it's needed for that?
> >
> > We moved on and it penalises later CPUs, leading to udelay providing
> > shorter delays than requested.
> >
> > So the choice was either stable and predictable on older CPUs but
> > buggy on newer CPUs, or correct on all CPUs but gives unnecessarily
> > longer delays on older CPUs.
> 
> Why not add an #ifdef CPU_V4 or whatever?

Because then you get it whenever you configure for V4 as the lowest
denominator CPU, which leads to the buggy behaviour on better CPUs.
It's far better to leave it as is and just accept that the old CPUs
will have longer than necessary delays.  If people really really
care (and there's likely to only be a small minority of them now)
changing the '0' to a '1' is a very simple change for them to carry
in their local tree.  Unlike getting the right unrolling etc.



More information about the linux-arm-kernel mailing list