> >> And the loop can be turned into ndelay:
> >>
> >>          /*
> >>           * Force at least 170ns delay before clearing
> >>           * reset bit. Each read from LCR takes at least
> >>           * 30ns so 10 times for 300ns to be safe.
> >>           */
> >>          for(i=0;i<10;i++)
> >>                  readval = *MiscCtrl;
> >
> > Again, since I can't test this, I do not want this patch to contain
> > any functional changes.  AFAIC, the 10 register reads must still
> > happen after this patch is applied.

You can't use ndelay(); the writes can get posted so can appear
much closer together by the time they get to the actual hardware.
Multiple volatile reads don't need a target variable.
(Shouldn't they also real readl()?)

Deleting the driver works...

        David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)

Reply via email to