[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201105112728.GJ4488@dell>
Date: Thu, 5 Nov 2020 11:27:28 +0000
From: Lee Jones <lee.jones@...aro.org>
To: David Laight <David.Laight@...LAB.COM>
Cc: 'Jiri Slaby' <jirislaby@...nel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"paulkf@...rogate.com" <paulkf@...rogate.com>
Subject: Re: [PATCH 27/36] tty: synclinkmp: Mark never checked 'readval' as
__always_unused
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
Powered by blists - more mailing lists