]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
authorMark Brown <broonie@linaro.org>
Tue, 3 Jun 2014 09:39:43 +0000 (10:39 +0100)
committerMark Brown <broonie@linaro.org>
Tue, 3 Jun 2014 09:39:43 +0000 (10:39 +0100)
include/sound/soc.h
sound/soc/soc-cache.c

index dcdcc95efd1d4a863cda47caa39de60853c5e513..f7f32c03bf9168e204d918531cccd6d4adaab1c6 100644 (file)
@@ -1146,6 +1146,33 @@ static inline struct snd_soc_platform *snd_soc_component_to_platform(
        return container_of(component, struct snd_soc_platform, component);
 }
 
+/**
+ * snd_soc_dapm_to_codec() - Casts a DAPM context to the CODEC it is embedded in
+ * @dapm: The DAPM context to cast to the CODEC
+ *
+ * This function must only be used on DAPM contexts that are known to be part of
+ * a CODEC (e.g. in a CODEC driver). Otherwise the behavior is undefined.
+ */
+static inline struct snd_soc_codec *snd_soc_dapm_to_codec(
+       struct snd_soc_dapm_context *dapm)
+{
+       return container_of(dapm, struct snd_soc_codec, dapm);
+}
+
+/**
+ * snd_soc_dapm_to_platform() - Casts a DAPM context to the platform it is
+ *  embedded in
+ * @dapm: The DAPM context to cast to the platform.
+ *
+ * This function must only be used on DAPM contexts that are known to be part of
+ * a platform (e.g. in a platform driver). Otherwise the behavior is undefined.
+ */
+static inline struct snd_soc_platform *snd_soc_dapm_to_platform(
+       struct snd_soc_dapm_context *dapm)
+{
+       return container_of(dapm, struct snd_soc_platform, dapm);
+}
+
 /* codec IO */
 unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg);
 int snd_soc_write(struct snd_soc_codec *codec, unsigned int reg,
index 3fa77d5f9b75c0b7f442669301f4bf667eab8f7c..00e70b6c7da2ea78e622ca3d0ce36360f3ede593 100644 (file)
@@ -72,6 +72,9 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
 
        reg_size = codec_drv->reg_cache_size * codec_drv->reg_word_size;
 
+       if (!reg_size)
+               return 0;
+
        mutex_init(&codec->cache_rw_mutex);
 
        dev_dbg(codec->dev, "ASoC: Initializing cache for %s codec\n",