ASoC: Add helper function to cast component back to CODEC
authorLars-Peter Clausen <lars@metafoo.de>
Tue, 18 Mar 2014 08:02:10 +0000 (09:02 +0100)
committerMark Brown <broonie@linaro.org>
Wed, 19 Mar 2014 13:07:30 +0000 (13:07 +0000)
Add a helper function to cast back from a component struct to the CODEC struct
it is embedded in. This is useful in situations where we know that a certain
component is a CODEC and want to get access to some CODEC specific properties.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
include/sound/soc.h

index 37b470c1e1277057f74f792f6c21016184a27f63..9ce6d20899b4badb2adbc9a6593c29b777b96b0a 100644 (file)
@@ -1104,6 +1104,19 @@ struct soc_enum {
        const unsigned int *values;
 };
 
+/**
+ * snd_soc_component_to_codec() - Casts a component to the CODEC it is embedded in
+ * @component: The component to cast to a CODEC
+ *
+ * This function must only be used on components that are known to be CODECs.
+ * Otherwise the behavior is undefined.
+ */
+static inline struct snd_soc_codec *snd_soc_component_to_codec(
+       struct snd_soc_component *component)
+{
+       return container_of(component, struct snd_soc_codec, component);
+}
+
 /* codec IO */
 unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
 unsigned int snd_soc_write(struct snd_soc_codec *codec,