summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitris Papastamos2011-01-19 15:53:37 +0100
committerMark Brown2011-01-20 14:41:01 +0100
commit9978007befa5efdc16dc940631c594f420f96b09 (patch)
tree10af07e9e32ed471299a5250fe870938ea3eeff3
parentASoC: soc-cache: Introduce the cache_bypass option (diff)
downloadkernel-qcow2-linux-9978007befa5efdc16dc940631c594f420f96b09.tar.gz
kernel-qcow2-linux-9978007befa5efdc16dc940631c594f420f96b09.tar.xz
kernel-qcow2-linux-9978007befa5efdc16dc940631c594f420f96b09.zip
ASoC: soc-cache: Apply the cache_bypass option
Incorporate the use of the cache_bypass functionality in the syncing functions. The snd_soc_flat_cache_sync() need not be hooked as there is no performance benefit from using the cache_bypass option. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--sound/soc/soc-cache.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c
index 1ebff9f12b4e..f83483963791 100644
--- a/sound/soc/soc-cache.c
+++ b/sound/soc/soc-cache.c
@@ -890,7 +890,9 @@ static int snd_soc_rbtree_cache_sync(struct snd_soc_codec *codec)
ret = snd_soc_cache_read(codec, rbnode->reg, &val);
if (ret)
return ret;
+ codec->cache_bypass = 1;
ret = snd_soc_write(codec, rbnode->reg, val);
+ codec->cache_bypass = 0;
if (ret)
return ret;
dev_dbg(codec->dev, "Synced register %#x, value = %#x\n",
@@ -1148,7 +1150,9 @@ static int snd_soc_lzo_cache_sync(struct snd_soc_codec *codec)
ret = snd_soc_cache_read(codec, i, &val);
if (ret)
return ret;
+ codec->cache_bypass = 1;
ret = snd_soc_write(codec, i, val);
+ codec->cache_bypass = 0;
if (ret)
return ret;
dev_dbg(codec->dev, "Synced register %#x, value = %#x\n",