aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/soc.h4
-rw-r--r--sound/soc/soc-core.c36
2 files changed, 40 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index e20835753c6b..2720a9f3780b 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -278,6 +278,10 @@ int snd_soc_register_codec(struct device *dev,
278void snd_soc_unregister_codec(struct device *dev); 278void snd_soc_unregister_codec(struct device *dev);
279int snd_soc_codec_volatile_register(struct snd_soc_codec *codec, 279int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,
280 unsigned int reg); 280 unsigned int reg);
281int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
282 unsigned int reg);
283int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
284 unsigned int reg);
281int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec, 285int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
282 int addr_bits, int data_bits, 286 int addr_bits, int data_bits,
283 enum snd_soc_control_type control); 287 enum snd_soc_control_type control);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 074a0c6e99f4..5ae70a107f1f 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2147,6 +2147,42 @@ int snd_soc_codec_volatile_register(struct snd_soc_codec *codec,
2147EXPORT_SYMBOL_GPL(snd_soc_codec_volatile_register); 2147EXPORT_SYMBOL_GPL(snd_soc_codec_volatile_register);
2148 2148
2149/** 2149/**
2150 * snd_soc_codec_readable_register: Report if a register is readable.
2151 *
2152 * @codec: CODEC to query.
2153 * @reg: Register to query.
2154 *
2155 * Boolean function indicating if a CODEC register is readable.
2156 */
2157int snd_soc_codec_readable_register(struct snd_soc_codec *codec,
2158 unsigned int reg)
2159{
2160 if (codec->readable_register)
2161 return codec->readable_register(codec, reg);
2162 else
2163 return 0;
2164}
2165EXPORT_SYMBOL_GPL(snd_soc_codec_readable_register);
2166
2167/**
2168 * snd_soc_codec_writable_register: Report if a register is writable.
2169 *
2170 * @codec: CODEC to query.
2171 * @reg: Register to query.
2172 *
2173 * Boolean function indicating if a CODEC register is writable.
2174 */
2175int snd_soc_codec_writable_register(struct snd_soc_codec *codec,
2176 unsigned int reg)
2177{
2178 if (codec->writable_register)
2179 return codec->writable_register(codec, reg);
2180 else
2181 return 0;
2182}
2183EXPORT_SYMBOL_GPL(snd_soc_codec_writable_register);
2184
2185/**
2150 * snd_soc_new_ac97_codec - initailise AC97 device 2186 * snd_soc_new_ac97_codec - initailise AC97 device
2151 * @codec: audio codec 2187 * @codec: audio codec
2152 * @ops: AC97 bus operations 2188 * @ops: AC97 bus operations