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