diff options
Diffstat (limited to 'sound/soc/samsung/bells.c')
-rw-r--r-- | sound/soc/samsung/bells.c | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/sound/soc/samsung/bells.c b/sound/soc/samsung/bells.c index e5f05e62fa3c..3dd246fa0059 100644 --- a/sound/soc/samsung/bells.c +++ b/sound/soc/samsung/bells.c | |||
@@ -58,11 +58,16 @@ static int bells_set_bias_level(struct snd_soc_card *card, | |||
58 | struct snd_soc_dapm_context *dapm, | 58 | struct snd_soc_dapm_context *dapm, |
59 | enum snd_soc_bias_level level) | 59 | enum snd_soc_bias_level level) |
60 | { | 60 | { |
61 | struct snd_soc_dai *codec_dai = card->rtd[DAI_DSP_CODEC].codec_dai; | 61 | struct snd_soc_pcm_runtime *rtd; |
62 | struct snd_soc_codec *codec = codec_dai->codec; | 62 | struct snd_soc_dai *codec_dai; |
63 | struct snd_soc_codec *codec; | ||
63 | struct bells_drvdata *bells = card->drvdata; | 64 | struct bells_drvdata *bells = card->drvdata; |
64 | int ret; | 65 | int ret; |
65 | 66 | ||
67 | rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name); | ||
68 | codec_dai = rtd->codec_dai; | ||
69 | codec = codec_dai->codec; | ||
70 | |||
66 | if (dapm->dev != codec_dai->dev) | 71 | if (dapm->dev != codec_dai->dev) |
67 | return 0; | 72 | return 0; |
68 | 73 | ||
@@ -99,11 +104,16 @@ static int bells_set_bias_level_post(struct snd_soc_card *card, | |||
99 | struct snd_soc_dapm_context *dapm, | 104 | struct snd_soc_dapm_context *dapm, |
100 | enum snd_soc_bias_level level) | 105 | enum snd_soc_bias_level level) |
101 | { | 106 | { |
102 | struct snd_soc_dai *codec_dai = card->rtd[DAI_DSP_CODEC].codec_dai; | 107 | struct snd_soc_pcm_runtime *rtd; |
103 | struct snd_soc_codec *codec = codec_dai->codec; | 108 | struct snd_soc_dai *codec_dai; |
109 | struct snd_soc_codec *codec; | ||
104 | struct bells_drvdata *bells = card->drvdata; | 110 | struct bells_drvdata *bells = card->drvdata; |
105 | int ret; | 111 | int ret; |
106 | 112 | ||
113 | rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name); | ||
114 | codec_dai = rtd->codec_dai; | ||
115 | codec = codec_dai->codec; | ||
116 | |||
107 | if (dapm->dev != codec_dai->dev) | 117 | if (dapm->dev != codec_dai->dev) |
108 | return 0; | 118 | return 0; |
109 | 119 | ||
@@ -137,14 +147,22 @@ static int bells_set_bias_level_post(struct snd_soc_card *card, | |||
137 | static int bells_late_probe(struct snd_soc_card *card) | 147 | static int bells_late_probe(struct snd_soc_card *card) |
138 | { | 148 | { |
139 | struct bells_drvdata *bells = card->drvdata; | 149 | struct bells_drvdata *bells = card->drvdata; |
140 | struct snd_soc_codec *wm0010 = card->rtd[DAI_AP_DSP].codec; | 150 | struct snd_soc_pcm_runtime *rtd; |
141 | struct snd_soc_codec *codec = card->rtd[DAI_DSP_CODEC].codec; | 151 | struct snd_soc_codec *wm0010; |
142 | struct snd_soc_dai *aif1_dai = card->rtd[DAI_DSP_CODEC].codec_dai; | 152 | struct snd_soc_codec *codec; |
153 | struct snd_soc_dai *aif1_dai; | ||
143 | struct snd_soc_dai *aif2_dai; | 154 | struct snd_soc_dai *aif2_dai; |
144 | struct snd_soc_dai *aif3_dai; | 155 | struct snd_soc_dai *aif3_dai; |
145 | struct snd_soc_dai *wm9081_dai; | 156 | struct snd_soc_dai *wm9081_dai; |
146 | int ret; | 157 | int ret; |
147 | 158 | ||
159 | rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_AP_DSP].name); | ||
160 | wm0010 = rtd->codec; | ||
161 | |||
162 | rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name); | ||
163 | codec = rtd->codec; | ||
164 | aif1_dai = rtd->codec_dai; | ||
165 | |||
148 | ret = snd_soc_codec_set_sysclk(codec, ARIZONA_CLK_SYSCLK, | 166 | ret = snd_soc_codec_set_sysclk(codec, ARIZONA_CLK_SYSCLK, |
149 | ARIZONA_CLK_SRC_FLL1, | 167 | ARIZONA_CLK_SRC_FLL1, |
150 | bells->sysclk_rate, | 168 | bells->sysclk_rate, |
@@ -181,7 +199,8 @@ static int bells_late_probe(struct snd_soc_card *card) | |||
181 | return ret; | 199 | return ret; |
182 | } | 200 | } |
183 | 201 | ||
184 | aif2_dai = card->rtd[DAI_CODEC_CP].cpu_dai; | 202 | rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_CP].name); |
203 | aif2_dai = rtd->cpu_dai; | ||
185 | 204 | ||
186 | ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0); | 205 | ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0); |
187 | if (ret != 0) { | 206 | if (ret != 0) { |
@@ -192,8 +211,9 @@ static int bells_late_probe(struct snd_soc_card *card) | |||
192 | if (card->num_rtd == DAI_CODEC_SUB) | 211 | if (card->num_rtd == DAI_CODEC_SUB) |
193 | return 0; | 212 | return 0; |
194 | 213 | ||
195 | aif3_dai = card->rtd[DAI_CODEC_SUB].cpu_dai; | 214 | rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_SUB].name); |
196 | wm9081_dai = card->rtd[DAI_CODEC_SUB].codec_dai; | 215 | aif3_dai = rtd->cpu_dai; |
216 | wm9081_dai = rtd->codec_dai; | ||
197 | 217 | ||
198 | ret = snd_soc_dai_set_sysclk(aif3_dai, ARIZONA_CLK_SYSCLK, 0, 0); | 218 | ret = snd_soc_dai_set_sysclk(aif3_dai, ARIZONA_CLK_SYSCLK, 0, 0); |
199 | if (ret != 0) { | 219 | if (ret != 0) { |