[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHp75VeA8tA-m_gHu5iuhriSfm_qo1PRnUWe7kQ68CCm+UCgHA@mail.gmail.com>
Date: Mon, 8 Aug 2022 16:40:26 +0200
From: Andy Shevchenko <andy.shevchenko@...il.com>
To: Mark Brown <broonie@...nel.org>
Cc: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Aidan MacDonald <aidanmacdonald.0x0@...il.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>
Subject: Re: [PATCH v1 5/5] regmap: mmio: Introduce IO accessors that can talk
to IO port
On Mon, Aug 8, 2022 at 3:31 PM Mark Brown <broonie@...nel.org> wrote:
> On Fri, Aug 05, 2022 at 11:53:21PM +0300, Andy Shevchenko wrote:
>
> > Currently regmap MMIO is inconsistent with IO accessors. I.e.
> > the Big Endian counterparts are using ioreadXXbe() / iowriteXXbe()
> > which are not clean implementations of readXXbe(). Besides that
> > some users may use regmap MMIO for IO ports, and this can be done
> > by assigning ioreadXX()/iowriteXX() and their Big Endian counterparts
> > to the regmap context.
>
> Have you validated that nothing is relying on whatever the problem is
> with using the io versions?
I have cross-checked 1) the architectures that are BE and have IO port
capability, and 2) the drivers that are using regmap MMIO with a
big-endian setting. I found no driver is mapping IO ports and uses
regmap MMIO at the same time. The architecture wise the x86 and ia64
are not in question, I think. And alpha is more academical nowadays.
Did I miss anything?
That said, I'm 99.999% sure there is no problem with that.
...
> > That said, reimplement current Big Endian MMIO accessors by replacing
> > ioread()/iowrite() with respective read()/write() and swab() calls.
> > While at it, add IO port support with a corresponding flag added.
>
> This should be a separate patch.
OK! Then we remove some code and (re-)add it later. Do we need this churn?
Another way is to add IO port accessors and then fix the MMIO.
...
> > + if (config->io_port) {
> > + ctx->reg_read = regmap_mmio_ioread8;
> > + ctx->reg_write = regmap_mmio_iowrite8;
> > + } else if (config->use_relaxed_mmio) {
>
> If these options are mutually exclusive we should validate that they are
> not simultaneously set.
Yes, the validation is missed. I will add it.
--
With Best Regards,
Andy Shevchenko
Powered by blists - more mailing lists