ASoC: Tegra: Retrieve card from DAPM context not codec
authorStephen Warren <swarren@nvidia.com>
Tue, 19 Apr 2011 21:25:10 +0000 (15:25 -0600)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 20 Apr 2011 12:50:01 +0000 (13:50 +0100)
Card widgets are created in the card's DAPM context, not any codec's DAPM
context. Hence, w->codec==NULL. Instead, find the card from the widget
through the DAPM context of the widget, not the codec of the widget.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/tegra/tegra_wm8903.c

index 988ff50..9a439fb 100644 (file)
@@ -156,8 +156,8 @@ static struct snd_soc_jack_pin tegra_wm8903_mic_jack_pins[] = {
 static int tegra_wm8903_event_int_spk(struct snd_soc_dapm_widget *w,
                                        struct snd_kcontrol *k, int event)
 {
-       struct snd_soc_codec *codec = w->codec;
-       struct snd_soc_card *card = codec->card;
+       struct snd_soc_dapm_context *dapm = w->dapm;
+       struct snd_soc_card *card = dapm->card;
        struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card);
        struct tegra_wm8903_platform_data *pdata = machine->pdata;
 
@@ -173,8 +173,8 @@ static int tegra_wm8903_event_int_spk(struct snd_soc_dapm_widget *w,
 static int tegra_wm8903_event_hp(struct snd_soc_dapm_widget *w,
                                        struct snd_kcontrol *k, int event)
 {
-       struct snd_soc_codec *codec = w->codec;
-       struct snd_soc_card *card = codec->card;
+       struct snd_soc_dapm_context *dapm = w->dapm;
+       struct snd_soc_card *card = dapm->card;
        struct tegra_wm8903 *machine = snd_soc_card_get_drvdata(card);
        struct tegra_wm8903_platform_data *pdata = machine->pdata;