diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2014-05-18 08:24:12 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-06-01 14:16:47 -0400 |
commit | 24089e04cb1b4975bafd6368ab8b92082ebf6ad7 (patch) | |
tree | d42c4bae95d91a8ac41c7dd0a7903cc57887f8fb | |
parent | 15b8e94f7460a1285766555011a0feb68e618ecb (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.h | 27 |
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 | */ | ||
1145 | static 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 | */ | ||
1159 | static 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 */ |
1139 | unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg); | 1166 | unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg); |
1140 | int snd_soc_write(struct snd_soc_codec *codec, unsigned int reg, | 1167 | int snd_soc_write(struct snd_soc_codec *codec, unsigned int reg, |