[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231204112905.e58cf1b7bf94440f49188390@hugovil.com>
Date: Mon, 4 Dec 2023 11:29:05 -0500
From: Hugo Villeneuve <hugo@...ovil.com>
To: Hugo Villeneuve <hugo@...ovil.com>
Cc: Mark Brown <broonie@...nel.org>,
Jan Kundrát <jan.kundrat@...net.cz>,
Cosmin Tanislav <cosmin.tanislav@...log.com>,
linux-serial@...r.kernel.org,
Andy Shevchenko <andy.shevchenko@...il.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] tty: max310x: work around regmap->regcache data
corruption
On Fri, 1 Dec 2023 17:16:44 -0500
Hugo Villeneuve <hugo@...ovil.com> wrote:
> On Fri, 1 Dec 2023 21:41:48 +0000
> Mark Brown <broonie@...nel.org> wrote:
>
> > On Fri, Dec 01, 2023 at 04:38:46PM -0500, Hugo Villeneuve wrote:
> > > Mark Brown <broonie@...nel.org> wrote:
> >
> > > > If you're working on that driver it'd also be good to update the current
> > > > use of cache bypass for the enhanced features/interrupt identification
> > > > register (and anything else in there, that did seem to be the only one)
> > > > to use regmap ranges instead - that'd remove the need for the efr_lock
> > > > and be a much more sensible/idiomatic use of the regmap APIs.
> >
> > > I will also look to remove the efr_lock, altough it has more
> > > implications since this ship has some registers that share a common
> > > address, and selected by bits in other registers, and I think this
> > > is why there is this efr_lock.
> >
> > Right, the registers sharing a common address with the register selected
> > by bits in another register is what regmap ranges support - the less
> > creative use of this is banked blocks of registers with a selector
> > register which picks which page bank is in use, that's moderately common
> > especially for TI.
>
> Hi Mark,
> thanks for the info, I was not aware of that, and will look into it.
>
> Hugo Villeneuve.
Hi Mark,
I am having a hard time finding documentation on how regmap ranges
work.
Do you have an example of a driver which is using regmap ranges like it
should be done in this driver, that is using the exact same address for
two or more registers? I found an example, but it doesn't seem
applicable to the sc16is7xx driver because the two registers do not
share a common address, for example they have addresses like 0x01 and
0x81, even though with the proper page selection, they finally map to
address 0x01.
Thank you,
Hugo Villeneuve
Powered by blists - more mailing lists