On Thu, 05 Nov 2020, David Laight wrote:

> > >> 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...

Will post the removal patches when my tests finish.

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

Reply via email to