diff options
author | Mark Brown <broonie@linaro.org> | 2014-06-03 09:39:43 (GMT) |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-06-03 09:39:43 (GMT) |
commit | b8139d0afd51b8f357a018aab68ff9c4095217be (patch) | |
tree | 6b9928dec5c840766da727691c935ff9123fb50a | |
parent | bad6f621e492f65a0bf0fbe8db1c9c7f20da6a60 (diff) | |
parent | b5fc40d3b37bdb3524cdf1f550bd0c3b05ac3888 (diff) | |
download | linux-b8139d0afd51b8f357a018aab68ff9c4095217be.tar.xz |
Merge remote-tracking branch 'asoc/topic/core' into asoc-next
-rw-r--r-- | include/sound/soc.h | 27 | ||||
-rw-r--r-- | sound/soc/soc-cache.c | 3 |
2 files changed, 30 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index dcdcc95..f7f32c0 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -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, diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c index 3fa77d5..00e70b6 100644 --- a/sound/soc/soc-cache.c +++ b/sound/soc/soc-cache.c @@ -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", |