summaryrefslogtreecommitdiffstats
path: root/include/sound/soc.h
diff options
context:
space:
mode:
authorDimitris Papastamos <dp@opensource.wolfsonmicro.com>2010-11-11 10:04:58 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-11-11 15:59:01 +0000
commitcc28fb8e7d55d4d7c1661dc0b236f4faddecdd9e (patch)
treea7a0123df99c39db8c5084303a07c2dfae385add /include/sound/soc.h
parent7a30a3db34cc7b2180a1a6c4a51d19d93c8a8b80 (diff)
downloadblackbird-op-linux-cc28fb8e7d55d4d7c1661dc0b236f4faddecdd9e.tar.gz
blackbird-op-linux-cc28fb8e7d55d4d7c1661dc0b236f4faddecdd9e.zip
ASoC: soc-cache: Add support for LZO register caching
This patch adds support for LZO compression when storing the register cache. The initial register defaults cache is marked as __devinitconst and the only change required for a driver to use LZO compression is to set the compress_type member in codec->driver to SND_SOC_LZO_COMPRESSION. For a typical device whose register map would normally occupy 25kB or 50kB by using the LZO compression technique, one can get down to ~5-7kB. There might be a performance penalty associated with each individual read/write due to decompressing/compressing the underlying cache, however that should not be noticeable. These memory benefits depend on whether the target architecture can get rid of the memory occupied by the original register defaults cache which is marked as __devinitconst. Nevertheless there will be some memory gain even if the target architecture can't get rid of the original register map, this should be around ~30-32kB instead of 50kB. 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>
Diffstat (limited to 'include/sound/soc.h')
-rw-r--r--include/sound/soc.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 275e41133468..10f5932d3d07 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -256,7 +256,8 @@ enum snd_soc_control_type {
};
enum snd_soc_compress_type {
- SND_SOC_NO_COMPRESSION
+ SND_SOC_NO_COMPRESSION,
+ SND_SOC_LZO_COMPRESSION
};
int snd_soc_register_platform(struct device *dev,
OpenPOWER on IntegriCloud