From: broonie@opensource.wolfsonmicro.com (Mark Brown)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/1] ASoC: core: cache index fix
Date: Mon, 1 Aug 2011 20:51:52 +0900 [thread overview]
Message-ID: <20110801115150.GB16629@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <1312198690-13237-1-git-send-email-b29396@freescale.com>
On Mon, Aug 01, 2011 at 07:38:10PM +0800, Dong Aisheng wrote:
You've done this at the wrong abstraction level...
> @@ -62,8 +65,11 @@ static unsigned int hw_read(struct snd_soc_codec *codec, unsigned int reg)
> {
> int ret;
> unsigned int val;
> + unsigned int idx;
> +
> + idx = snd_soc_cache_reg_to_idx(codec, reg);
>
> - if (reg >= codec->driver->reg_cache_size ||
> + if (idx >= codec->driver->reg_cache_size ||
> snd_soc_codec_volatile_register(codec, reg) ||
> codec->cache_bypass) {
> if (codec->cache_only)
...hw_read() shouldn't need to know about this stuff, and there's no way
the rbtree cache should be using step sizes (which you did in the text I
deleted) as it will naturally not create the cache entries for registers
that don't exist. Whatever we do should be hidden in the flat (and
possibly LZO, though I'd be tempted not to bother) cache, plus having a
defualt readable_register() would be sensible.
This may mean starting off with some factoring out of legacy code which
still assumes flat caches, replacing them with a check that the register
is cachable.
The purpose of the step size is to save space in the register cache.
next prev parent reply other threads:[~2011-08-01 11:51 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-01 11:38 [PATCH 1/1] ASoC: core: cache index fix Dong Aisheng
2011-08-01 11:51 ` Mark Brown [this message]
2011-08-02 8:03 ` Dong Aisheng-B29396
2011-08-02 8:38 ` Mark Brown
2011-08-02 9:41 ` Dong Aisheng-B29396
2011-08-02 10:34 ` [alsa-devel] " Takashi Iwai
2011-08-02 10:55 ` Dong Aisheng-B29396
2011-08-02 11:09 ` Takashi Iwai
2011-08-02 11:15 ` Dong Aisheng-B29396
2011-08-02 12:10 ` Takashi Iwai
2011-08-02 12:29 ` Dong Aisheng-B29396
2011-08-02 12:52 ` Takashi Iwai
2011-08-02 15:48 ` Mark Brown
2011-08-02 16:13 ` Takashi Iwai
2011-08-02 16:40 ` Mark Brown
2011-08-02 18:06 ` Takashi Iwai
2011-08-03 5:23 ` Mark Brown
2011-08-03 6:20 ` Takashi Iwai
2011-08-03 9:00 ` Mark Brown
2011-08-03 7:03 ` Dong Aisheng-B29396
2011-08-03 7:39 ` Dong Aisheng-B29396
2011-08-03 9:31 ` Mark Brown
2011-08-03 11:11 ` Dong Aisheng-B29396
2011-08-02 12:58 ` Mark Brown
2011-08-02 13:17 ` Dong Aisheng-B29396
2011-08-02 15:27 ` Mark Brown
2011-08-02 16:05 ` Mark Brown
2011-08-02 9:51 ` Wolfram Sang
2011-08-02 10:38 ` [alsa-devel] " Takashi Iwai
2011-08-02 15:29 ` 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=20110801115150.GB16629@opensource.wolfsonmicro.com \
--to=broonie@opensource.wolfsonmicro.com \
--cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).