alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Mark Brown <broonie@opensource.wolfsonmicro.com>
To: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Cc: alsa-devel@alsa-project.org, patches@opensource.wolfsonmicro.com,
	Liam Girdwood <lrg@slimlogic.co.uk>
Subject: Re: [PATCH 4/4] ASoC: soc-cache: Add support for rbtree based register caching
Date: Thu, 4 Nov 2010 14:49:48 -0400	[thread overview]
Message-ID: <20101104184948.GE6088@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <1288880564-31957-5-git-send-email-dp@opensource.wolfsonmicro.com>

On Thu, Nov 04, 2010 at 02:22:44PM +0000, Dimitris Papastamos wrote:

> This patch adds support for rbtree compression when storing the
> register cache.  It does this by not adding any uninitialized registers
> (those whose value is 0).  If any of those registers is written
> with a nonzero value they get added into the rbtree.

> +	rbtree_ctx = codec->reg_cache;
> +	for (node = rb_first(&rbtree_ctx->root); node; node = rb_next(node)) {
> +		rbnode = rb_entry(node, struct snd_soc_rbtree_node, node);
> +		if (!rbnode->dirty)
> +			continue;
> +		snd_soc_cache_read(codec, rbnode->reg, &val);
> +		snd_soc_write(codec, rbnode->reg, val);
> +		dev_dbg(codec->dev, "Synced register %#x, value = %#x\n",
> +			rbnode->reg, val);

Hrm, dirty handling is kind of interesting.  It is unconditionally set
in the write function and never cleared so we'll always rewrite a
register if it's ever been touched.  Is it worth remembering the default
values and just comparing with them, the memory overhead will probably
be low since we only have one bitfield value here...  (and remember that
we'll be unlikely to allocate memory in 21 byte packed hunks with no
overhead...).

  reply	other threads:[~2010-11-04 18:49 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-04 14:22 [PATCH 0/4] ASoC: Introduce the new caching API Dimitris Papastamos
2010-11-04 14:22 ` [PATCH 1/4] ASoC: soc.h: Add new caching API prototypes and hooks Dimitris Papastamos
2010-11-04 18:20   ` Mark Brown
2010-11-04 14:22 ` [PATCH 2/4] ASoC: soc-cache: Add support for flat register caching Dimitris Papastamos
2010-11-04 18:31   ` Mark Brown
2010-11-05  9:34     ` Dimitris Papastamos
2010-11-05 13:31       ` Mark Brown
2010-11-05 13:59         ` Dimitris Papastamos
2010-11-05 14:07           ` Mark Brown
2010-11-05 14:12             ` Dimitris Papastamos
2010-11-05 15:25               ` Mark Brown
2010-11-05 11:45     ` Dimitris Papastamos
2010-11-04 14:22 ` [PATCH 3/4] ASoC: soc-cache: Add support for LZO " Dimitris Papastamos
2010-11-04 22:45   ` Mark Brown
2010-11-05 10:22     ` Dimitris Papastamos
2010-11-05 13:33       ` Mark Brown
2010-11-04 14:22 ` [PATCH 4/4] ASoC: soc-cache: Add support for rbtree based " Dimitris Papastamos
2010-11-04 18:49   ` Mark Brown [this message]
2010-11-04 18:50     ` Mark Brown
2010-11-05  9:38     ` Dimitris Papastamos

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=20101104184948.GE6088@opensource.wolfsonmicro.com \
    --to=broonie@opensource.wolfsonmicro.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=dp@opensource.wolfsonmicro.com \
    --cc=lrg@slimlogic.co.uk \
    --cc=patches@opensource.wolfsonmicro.com \
    /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).