aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/ac97.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/ac97.c')
-rw-r--r--sound/soc/codecs/ac97.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/sound/soc/codecs/ac97.c b/sound/soc/codecs/ac97.c
index fd101d450d56..1f5e57a4bb7a 100644
--- a/sound/soc/codecs/ac97.c
+++ b/sound/soc/codecs/ac97.c
@@ -81,9 +81,11 @@ static int ac97_write(struct snd_soc_codec *codec, unsigned int reg,
81static int ac97_soc_probe(struct platform_device *pdev) 81static int ac97_soc_probe(struct platform_device *pdev)
82{ 82{
83 struct snd_soc_device *socdev = platform_get_drvdata(pdev); 83 struct snd_soc_device *socdev = platform_get_drvdata(pdev);
84 struct snd_soc_card *card = socdev->card;
84 struct snd_soc_codec *codec; 85 struct snd_soc_codec *codec;
85 struct snd_ac97_bus *ac97_bus; 86 struct snd_ac97_bus *ac97_bus;
86 struct snd_ac97_template ac97_template; 87 struct snd_ac97_template ac97_template;
88 int i;
87 int ret = 0; 89 int ret = 0;
88 90
89 printk(KERN_INFO "AC97 SoC Audio Codec %s\n", AC97_VERSION); 91 printk(KERN_INFO "AC97 SoC Audio Codec %s\n", AC97_VERSION);
@@ -103,12 +105,6 @@ static int ac97_soc_probe(struct platform_device *pdev)
103 INIT_LIST_HEAD(&codec->dapm_widgets); 105 INIT_LIST_HEAD(&codec->dapm_widgets);
104 INIT_LIST_HEAD(&codec->dapm_paths); 106 INIT_LIST_HEAD(&codec->dapm_paths);
105 107
106 ret = snd_soc_new_ac97_codec(codec, &soc_ac97_ops, 0);
107 if (ret < 0) {
108 printk(KERN_ERR "ASoC: failed to init gen ac97 glue\n");
109 goto err;
110 }
111
112 /* register pcms */ 108 /* register pcms */
113 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); 109 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
114 if (ret < 0) 110 if (ret < 0)
@@ -124,6 +120,13 @@ static int ac97_soc_probe(struct platform_device *pdev)
124 if (ret < 0) 120 if (ret < 0)
125 goto bus_err; 121 goto bus_err;
126 122
123 for (i = 0; i < card->num_links; i++) {
124 if (card->dai_link[i].codec_dai->ac97_control) {
125 snd_ac97_dev_add_pdata(codec->ac97,
126 card->dai_link[i].cpu_dai->ac97_pdata);
127 }
128 }
129
127 return 0; 130 return 0;
128 131
129bus_err: 132bus_err: