[07/13] ASoC: Add helper function to cast component back to CODEC
diff mbox

Message ID 1395129736-11938-8-git-send-email-lars@metafoo.de
State Accepted
Commit 28d6d175d842b8dd6ac7fa10fa6e610b19fd9d86
Headers show

Commit Message

Lars-Peter Clausen March 18, 2014, 8:02 a.m. UTC
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>
---
 include/sound/soc.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Mark Brown March 19, 2014, 1:08 p.m. UTC | #1
On Tue, Mar 18, 2014 at 09:02:10AM +0100, Lars-Peter Clausen wrote:
> 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.

Applied, thanks.

Patch
diff mbox

diff --git a/include/sound/soc.h b/include/sound/soc.h
index f6d7ef4f..a355d0f 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1093,6 +1093,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,