mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jorge Ramirez-Ortiz <jramirez@baylibre.com>
To: Mark Brown <broonie@kernel.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [RFC] regmap: allow volatile register writes with cached only read maps
Date: Fri, 11 May 2018 12:29:42 +0200	[thread overview]
Message-ID: <7cc158bb-3471-4d8e-d066-2e7f535812eb@baylibre.com> (raw)
In-Reply-To: <20180511020049.GD949@sirena.org.uk>

On 05/11/2018 04:00 AM, Mark Brown wrote:
> On Wed, May 09, 2018 at 01:49:21PM +0200, Jorge Ramirez-Ortiz wrote:
>> On 05/09/2018 10:39 AM, Mark Brown wrote:
>>> I don't understand what voltile access means for write only devices.
>>> Volatile means that we don't read the cache but go direct to the
>>> hardware so if we can't read the hardware that's pretty redundant, a
>>> volatile read that goes to the cache is just a default read.
>> 1. only cached reads: (as a consequence every regmap write must succeed).
>> 2. cached writes: do not access the hardware unless the value differs from
>> what is in the cache already or (3) applies.
>> 3. support for selectable volatile writes: those that will always access the
>> device no matter what the cache holds.
> We don't currently suppress writes except when regmap_update_bits()
> notices that the modification was a noop.  You probably want to be using
> regmap_write_bits() here instead of regmap_update_bits(), that will
> always do the write.

but isnt that interface at a different level?
I am not sure if you are asking me to review my patch or just discarding 
the RFC and highlighting that I have a configuration problem.

In my use case and what triggered this RFC (config below), an 'amixer 
set' might never reach the driver's .reg_write interface even though the 
register is configured as volatile (to me this is not consistent since 
volatile_reg is being silently ignored).

So I dont see where/how your recommendation fits; maybe you could 
clarify a bit more please?

static const struct regmap_config foo_regmap = {
     .reg_write           = foo_write_reg,

     .reg_bits            = 32,
     .val_bits            = 32,
     .reg_stride          = 1,

     .volatile_reg        = foo_volatile_reg,

     .max_register        = CODEC_ENABLE_DEBUG_CTRL_REG,
     .reg_defaults        = foo_reg_defaults,
     .num_reg_defaults    = ARRAY_SIZE(foo_reg_defaults),
     .cache_type          = REGCACHE_RBTREE,
};

  reply	other threads:[~2018-05-11 10:29 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-08 22:06 Jorge Ramirez-Ortiz
2018-05-09  8:39 ` Mark Brown
2018-05-09 11:49   ` Jorge Ramirez-Ortiz
2018-05-11  2:00     ` Mark Brown
2018-05-11 10:29       ` Jorge Ramirez-Ortiz [this message]
2018-05-13  2:22         ` Mark Brown
2018-05-17  7:12           ` Jorge Ramirez-Ortiz
2018-05-17 17:04             ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7cc158bb-3471-4d8e-d066-2e7f535812eb@baylibre.com \
    --to=jramirez@baylibre.com \
    --cc=broonie@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®