aboutsummaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorDimitris Papastamos <dp@opensource.wolfsonmicro.com>2011-03-22 10:37:03 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-03-26 17:44:14 +0000
commit5fb609d435f0679ed322ddeb1fdafe6142463fdf (patch)
treec0da5a9fca23fab307305acf6be95272eb2e8c52 /include/sound
parentf3594f5c5c489d159f6d487a889d9d68ca4c0123 (diff)
downloadkernel_samsung_smdk4412-5fb609d435f0679ed322ddeb1fdafe6142463fdf.zip
kernel_samsung_smdk4412-5fb609d435f0679ed322ddeb1fdafe6142463fdf.tar.gz
kernel_samsung_smdk4412-5fb609d435f0679ed322ddeb1fdafe6142463fdf.tar.bz2
ASoC: soc-cache: Introduce raw bulk write support
As it has become more common to have to write firmware or similar large chunks of data to the hardware, add a function to perform raw bulk writes that bypass the cache. This only handles volatile registers as we should avoid getting out of sync with the actual cache. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index bfa4836..2f2a51f 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -543,6 +543,7 @@ struct snd_soc_codec {
unsigned int (*hw_read)(struct snd_soc_codec *, unsigned int);
unsigned int (*read)(struct snd_soc_codec *, unsigned int);
int (*write)(struct snd_soc_codec *, unsigned int, unsigned int);
+ int (*bulk_write_raw)(struct snd_soc_codec *, unsigned int, const void *, size_t);
void *reg_cache;
const void *reg_def_copy;
const struct snd_soc_cache_ops *cache_ops;
@@ -814,6 +815,8 @@ struct soc_enum {
unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
unsigned int snd_soc_write(struct snd_soc_codec *codec,
unsigned int reg, unsigned int val);
+unsigned int snd_soc_bulk_write_raw(struct snd_soc_codec *codec,
+ unsigned int reg, const void *data, size_t len);
/* device driver data */