.. | .. |
---|
16 | 16 | |
---|
17 | 17 | #include "aio.h" |
---|
18 | 18 | |
---|
19 | | -static int uniphier_aio_compr_prepare(struct snd_compr_stream *cstream); |
---|
20 | | -static int uniphier_aio_compr_hw_free(struct snd_compr_stream *cstream); |
---|
| 19 | +static int uniphier_aio_compr_prepare(struct snd_soc_component *component, |
---|
| 20 | + struct snd_compr_stream *cstream); |
---|
| 21 | +static int uniphier_aio_compr_hw_free(struct snd_soc_component *component, |
---|
| 22 | + struct snd_compr_stream *cstream); |
---|
21 | 23 | |
---|
22 | 24 | static int uniphier_aio_comprdma_new(struct snd_soc_pcm_runtime *rtd) |
---|
23 | 25 | { |
---|
24 | 26 | struct snd_compr *compr = rtd->compr; |
---|
25 | 27 | struct device *dev = compr->card->dev; |
---|
26 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 28 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
27 | 29 | struct uniphier_aio_sub *sub = &aio->sub[compr->direction]; |
---|
28 | 30 | size_t size = AUD_RING_SIZE; |
---|
29 | 31 | int dma_dir = DMA_FROM_DEVICE, ret; |
---|
.. | .. |
---|
56 | 58 | { |
---|
57 | 59 | struct snd_compr *compr = rtd->compr; |
---|
58 | 60 | struct device *dev = compr->card->dev; |
---|
59 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 61 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
60 | 62 | struct uniphier_aio_sub *sub = &aio->sub[compr->direction]; |
---|
61 | 63 | int dma_dir = DMA_FROM_DEVICE; |
---|
62 | 64 | |
---|
.. | .. |
---|
70 | 72 | return 0; |
---|
71 | 73 | } |
---|
72 | 74 | |
---|
73 | | -static int uniphier_aio_compr_open(struct snd_compr_stream *cstream) |
---|
| 75 | +static int uniphier_aio_compr_open(struct snd_soc_component *component, |
---|
| 76 | + struct snd_compr_stream *cstream) |
---|
74 | 77 | { |
---|
75 | 78 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
76 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 79 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
77 | 80 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
78 | 81 | int ret; |
---|
79 | 82 | |
---|
.. | .. |
---|
95 | 98 | return 0; |
---|
96 | 99 | } |
---|
97 | 100 | |
---|
98 | | -static int uniphier_aio_compr_free(struct snd_compr_stream *cstream) |
---|
| 101 | +static int uniphier_aio_compr_free(struct snd_soc_component *component, |
---|
| 102 | + struct snd_compr_stream *cstream) |
---|
99 | 103 | { |
---|
100 | 104 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
101 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 105 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
102 | 106 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
103 | 107 | int ret; |
---|
104 | 108 | |
---|
105 | | - ret = uniphier_aio_compr_hw_free(cstream); |
---|
| 109 | + ret = uniphier_aio_compr_hw_free(component, cstream); |
---|
106 | 110 | if (ret) |
---|
107 | 111 | return ret; |
---|
108 | 112 | ret = uniphier_aio_comprdma_free(rtd); |
---|
.. | .. |
---|
114 | 118 | return 0; |
---|
115 | 119 | } |
---|
116 | 120 | |
---|
117 | | -static int uniphier_aio_compr_get_params(struct snd_compr_stream *cstream, |
---|
| 121 | +static int uniphier_aio_compr_get_params(struct snd_soc_component *component, |
---|
| 122 | + struct snd_compr_stream *cstream, |
---|
118 | 123 | struct snd_codec *params) |
---|
119 | 124 | { |
---|
120 | 125 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
121 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 126 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
122 | 127 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
123 | 128 | |
---|
124 | 129 | *params = sub->cparams.codec; |
---|
.. | .. |
---|
126 | 131 | return 0; |
---|
127 | 132 | } |
---|
128 | 133 | |
---|
129 | | -static int uniphier_aio_compr_set_params(struct snd_compr_stream *cstream, |
---|
| 134 | +static int uniphier_aio_compr_set_params(struct snd_soc_component *component, |
---|
| 135 | + struct snd_compr_stream *cstream, |
---|
130 | 136 | struct snd_compr_params *params) |
---|
131 | 137 | { |
---|
132 | 138 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
133 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 139 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
134 | 140 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
135 | 141 | struct device *dev = &aio->chip->pdev->dev; |
---|
136 | 142 | int ret; |
---|
.. | .. |
---|
155 | 161 | aio_port_reset(sub); |
---|
156 | 162 | aio_src_reset(sub); |
---|
157 | 163 | |
---|
158 | | - ret = uniphier_aio_compr_prepare(cstream); |
---|
| 164 | + ret = uniphier_aio_compr_prepare(component, cstream); |
---|
159 | 165 | if (ret) |
---|
160 | 166 | return ret; |
---|
161 | 167 | |
---|
162 | 168 | return 0; |
---|
163 | 169 | } |
---|
164 | 170 | |
---|
165 | | -static int uniphier_aio_compr_hw_free(struct snd_compr_stream *cstream) |
---|
| 171 | +static int uniphier_aio_compr_hw_free(struct snd_soc_component *component, |
---|
| 172 | + struct snd_compr_stream *cstream) |
---|
166 | 173 | { |
---|
167 | 174 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
168 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 175 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
169 | 176 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
170 | 177 | |
---|
171 | 178 | sub->setting = 0; |
---|
.. | .. |
---|
173 | 180 | return 0; |
---|
174 | 181 | } |
---|
175 | 182 | |
---|
176 | | -static int uniphier_aio_compr_prepare(struct snd_compr_stream *cstream) |
---|
| 183 | +static int uniphier_aio_compr_prepare(struct snd_soc_component *component, |
---|
| 184 | + struct snd_compr_stream *cstream) |
---|
177 | 185 | { |
---|
178 | 186 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
179 | 187 | struct snd_compr_runtime *runtime = cstream->runtime; |
---|
180 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 188 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
181 | 189 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
182 | 190 | int bytes = runtime->fragment_size; |
---|
183 | 191 | unsigned long flags; |
---|
.. | .. |
---|
210 | 218 | return 0; |
---|
211 | 219 | } |
---|
212 | 220 | |
---|
213 | | -static int uniphier_aio_compr_trigger(struct snd_compr_stream *cstream, |
---|
| 221 | +static int uniphier_aio_compr_trigger(struct snd_soc_component *component, |
---|
| 222 | + struct snd_compr_stream *cstream, |
---|
214 | 223 | int cmd) |
---|
215 | 224 | { |
---|
216 | 225 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
217 | 226 | struct snd_compr_runtime *runtime = cstream->runtime; |
---|
218 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 227 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
219 | 228 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
220 | 229 | struct device *dev = &aio->chip->pdev->dev; |
---|
221 | 230 | int bytes = runtime->fragment_size, ret = 0; |
---|
.. | .. |
---|
243 | 252 | return ret; |
---|
244 | 253 | } |
---|
245 | 254 | |
---|
246 | | -static int uniphier_aio_compr_pointer(struct snd_compr_stream *cstream, |
---|
| 255 | +static int uniphier_aio_compr_pointer(struct snd_soc_component *component, |
---|
| 256 | + struct snd_compr_stream *cstream, |
---|
247 | 257 | struct snd_compr_tstamp *tstamp) |
---|
248 | 258 | { |
---|
249 | 259 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
250 | 260 | struct snd_compr_runtime *runtime = cstream->runtime; |
---|
251 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 261 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
252 | 262 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
253 | 263 | int bytes = runtime->fragment_size; |
---|
254 | 264 | unsigned long flags; |
---|
.. | .. |
---|
316 | 326 | return 0; |
---|
317 | 327 | } |
---|
318 | 328 | |
---|
319 | | -static int uniphier_aio_compr_copy(struct snd_compr_stream *cstream, |
---|
| 329 | +static int uniphier_aio_compr_copy(struct snd_soc_component *component, |
---|
| 330 | + struct snd_compr_stream *cstream, |
---|
320 | 331 | char __user *buf, size_t count) |
---|
321 | 332 | { |
---|
322 | 333 | struct snd_soc_pcm_runtime *rtd = cstream->private_data; |
---|
323 | 334 | struct snd_compr_runtime *runtime = cstream->runtime; |
---|
324 | 335 | struct device *carddev = rtd->compr->card->dev; |
---|
325 | | - struct uniphier_aio *aio = uniphier_priv(rtd->cpu_dai); |
---|
| 336 | + struct uniphier_aio *aio = uniphier_priv(asoc_rtd_to_cpu(rtd, 0)); |
---|
326 | 337 | struct uniphier_aio_sub *sub = &aio->sub[cstream->direction]; |
---|
327 | 338 | size_t cnt = min_t(size_t, count, aio_rb_space_to_end(sub) / 2); |
---|
328 | 339 | int bytes = runtime->fragment_size; |
---|
.. | .. |
---|
375 | 386 | return cnt; |
---|
376 | 387 | } |
---|
377 | 388 | |
---|
378 | | -static int uniphier_aio_compr_get_caps(struct snd_compr_stream *cstream, |
---|
| 389 | +static int uniphier_aio_compr_get_caps(struct snd_soc_component *component, |
---|
| 390 | + struct snd_compr_stream *cstream, |
---|
379 | 391 | struct snd_compr_caps *caps) |
---|
380 | 392 | { |
---|
381 | 393 | caps->num_codecs = 1; |
---|
.. | .. |
---|
401 | 413 | .descriptor[0].formats = 0, |
---|
402 | 414 | }; |
---|
403 | 415 | |
---|
404 | | -static int uniphier_aio_compr_get_codec_caps(struct snd_compr_stream *stream, |
---|
| 416 | +static int uniphier_aio_compr_get_codec_caps(struct snd_soc_component *component, |
---|
| 417 | + struct snd_compr_stream *stream, |
---|
405 | 418 | struct snd_compr_codec_caps *codec) |
---|
406 | 419 | { |
---|
407 | 420 | if (codec->codec == SND_AUDIOCODEC_IEC61937) |
---|
.. | .. |
---|
412 | 425 | return 0; |
---|
413 | 426 | } |
---|
414 | 427 | |
---|
415 | | -const struct snd_compr_ops uniphier_aio_compr_ops = { |
---|
| 428 | +const struct snd_compress_ops uniphier_aio_compress_ops = { |
---|
416 | 429 | .open = uniphier_aio_compr_open, |
---|
417 | 430 | .free = uniphier_aio_compr_free, |
---|
418 | 431 | .get_params = uniphier_aio_compr_get_params, |
---|