diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2014-03-03 02:57:49 -0500 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-03-10 13:43:15 -0400 |
commit | bde24030b5a2825ef198b2f092b7271e22fae142 (patch) | |
tree | d379a9e06a36750d96af59921a8389eb39b01200 /sound/soc/spear | |
parent | 38dbfb59d1175ef458d006556061adeaa8751b72 (diff) |
ASoC: spear: spdif_out: Fix mute control
For controls registers with snd_soc_add_dai_controls snd_kcontrol_chip() returns
a pointer to the DAI, not to the CODEC.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/spear')
-rw-r--r-- | sound/soc/spear/spdif_out.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/sound/soc/spear/spdif_out.c b/sound/soc/spear/spdif_out.c index fe99f461aff0..19cca043e6e4 100644 --- a/sound/soc/spear/spdif_out.c +++ b/sound/soc/spear/spdif_out.c | |||
@@ -213,10 +213,7 @@ static int spdif_digital_mute(struct snd_soc_dai *dai, int mute) | |||
213 | static int spdif_mute_get(struct snd_kcontrol *kcontrol, | 213 | static int spdif_mute_get(struct snd_kcontrol *kcontrol, |
214 | struct snd_ctl_elem_value *ucontrol) | 214 | struct snd_ctl_elem_value *ucontrol) |
215 | { | 215 | { |
216 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); | 216 | struct snd_soc_dai *cpu_dai = snd_kcontrol_chip(kcontrol); |
217 | struct snd_soc_card *card = codec->card; | ||
218 | struct snd_soc_pcm_runtime *rtd = card->rtd; | ||
219 | struct snd_soc_dai *cpu_dai = rtd->cpu_dai; | ||
220 | struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); | 217 | struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); |
221 | 218 | ||
222 | ucontrol->value.integer.value[0] = host->saved_params.mute; | 219 | ucontrol->value.integer.value[0] = host->saved_params.mute; |
@@ -226,10 +223,7 @@ static int spdif_mute_get(struct snd_kcontrol *kcontrol, | |||
226 | static int spdif_mute_put(struct snd_kcontrol *kcontrol, | 223 | static int spdif_mute_put(struct snd_kcontrol *kcontrol, |
227 | struct snd_ctl_elem_value *ucontrol) | 224 | struct snd_ctl_elem_value *ucontrol) |
228 | { | 225 | { |
229 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); | 226 | struct snd_soc_dai *cpu_dai = snd_kcontrol_chip(kcontrol); |
230 | struct snd_soc_card *card = codec->card; | ||
231 | struct snd_soc_pcm_runtime *rtd = card->rtd; | ||
232 | struct snd_soc_dai *cpu_dai = rtd->cpu_dai; | ||
233 | struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); | 227 | struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); |
234 | 228 | ||
235 | if (host->saved_params.mute == ucontrol->value.integer.value[0]) | 229 | if (host->saved_params.mute == ucontrol->value.integer.value[0]) |