Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH 27/36] tty: synclinkmp: Mark never checked 'readval' as __always_unused | Date | Thu, 5 Nov 2020 11:04:54 +0000 |
| |
> >> 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)
| |