aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2014-05-18 08:24:12 -0400
committerMark Brown <broonie@linaro.org>2014-06-01 14:16:47 -0400
commit24089e04cb1b4975bafd6368ab8b92082ebf6ad7 (patch)
treed42c4bae95d91a8ac41c7dd0a7903cc57887f8fb
parent15b8e94f7460a1285766555011a0feb68e618ecb (diff)
ASoC: Add helper functions to cast from DAPM context to CODEC/platform
This is useful if we have a pointer to a DAPM context and know that it is a CODEC or platform DAPM context and want to get a pointer to the CODEC or platform. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--include/sound/soc.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index b9ee22018352..520b6684b04e 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1135,6 +1135,33 @@ static inline struct snd_soc_platform *snd_soc_component_to_platform(
1135 return container_of(component, struct snd_soc_platform, component); 1135 return container_of(component, struct snd_soc_platform, component);
1136} 1136}
1137 1137
1138/**
1139 * snd_soc_dapm_to_codec() - Casts a DAPM context to the CODEC it is embedded in
1140 * @dapm: The DAPM context to cast to the CODEC
1141 *
1142 * This function must only be used on DAPM contexts that are known to be part of
1143 * a CODEC (e.g. in a CODEC driver). Otherwise the behavior is undefined.
1144 */
1145static inline struct snd_soc_codec *snd_soc_dapm_to_codec(
1146 struct snd_soc_dapm_context *dapm)
1147{
1148 return container_of(dapm, struct snd_soc_codec, dapm);
1149}
1150
1151/**
1152 * snd_soc_dapm_to_platform() - Casts a DAPM context to the platform it is
1153 * embedded in
1154 * @dapm: The DAPM context to cast to the platform.
1155 *
1156 * This function must only be used on DAPM contexts that are known to be part of
1157 * a platform (e.g. in a platform driver). Otherwise the behavior is undefined.
1158 */
1159static inline struct snd_soc_platform *snd_soc_dapm_to_platform(
1160 struct snd_soc_dapm_context *dapm)
1161{
1162 return container_of(dapm, struct snd_soc_platform, dapm);
1163}
1164
1138/* codec IO */ 1165/* codec IO */
1139unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg); 1166unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
1140int snd_soc_write(struct snd_soc_codec *codec, unsigned int reg, 1167int snd_soc_write(struct snd_soc_codec *codec, unsigned int reg,