diff options
Diffstat (limited to 'sound/soc/blackfin/bf5xx-i2s.c')
-rw-r--r-- | sound/soc/blackfin/bf5xx-i2s.c | 45 |
1 files changed, 31 insertions, 14 deletions
diff --git a/sound/soc/blackfin/bf5xx-i2s.c b/sound/soc/blackfin/bf5xx-i2s.c index 3e6ada0dd1c4..d453b1e9d607 100644 --- a/sound/soc/blackfin/bf5xx-i2s.c +++ b/sound/soc/blackfin/bf5xx-i2s.c | |||
@@ -42,7 +42,6 @@ | |||
42 | #include <linux/gpio.h> | 42 | #include <linux/gpio.h> |
43 | 43 | ||
44 | #include "bf5xx-sport.h" | 44 | #include "bf5xx-sport.h" |
45 | #include "bf5xx-i2s.h" | ||
46 | 45 | ||
47 | struct bf5xx_i2s_port { | 46 | struct bf5xx_i2s_port { |
48 | u16 tcr1; | 47 | u16 tcr1; |
@@ -195,8 +194,7 @@ static void bf5xx_i2s_shutdown(struct snd_pcm_substream *substream, | |||
195 | bf5xx_i2s.configured = 0; | 194 | bf5xx_i2s.configured = 0; |
196 | } | 195 | } |
197 | 196 | ||
198 | static int bf5xx_i2s_probe(struct platform_device *pdev, | 197 | static int bf5xx_i2s_probe(struct snd_soc_dai *dai) |
199 | struct snd_soc_dai *dai) | ||
200 | { | 198 | { |
201 | pr_debug("%s enter\n", __func__); | 199 | pr_debug("%s enter\n", __func__); |
202 | if (peripheral_request_list(&sport_req[sport_num][0], "soc-audio")) { | 200 | if (peripheral_request_list(&sport_req[sport_num][0], "soc-audio")) { |
@@ -215,11 +213,11 @@ static int bf5xx_i2s_probe(struct platform_device *pdev, | |||
215 | return 0; | 213 | return 0; |
216 | } | 214 | } |
217 | 215 | ||
218 | static void bf5xx_i2s_remove(struct platform_device *pdev, | 216 | static int bf5xx_i2s_remove(struct snd_soc_dai *dai) |
219 | struct snd_soc_dai *dai) | ||
220 | { | 217 | { |
221 | pr_debug("%s enter\n", __func__); | 218 | pr_debug("%s enter\n", __func__); |
222 | peripheral_free_list(&sport_req[sport_num][0]); | 219 | peripheral_free_list(&sport_req[sport_num][0]); |
220 | return 0; | ||
223 | } | 221 | } |
224 | 222 | ||
225 | #ifdef CONFIG_PM | 223 | #ifdef CONFIG_PM |
@@ -228,9 +226,9 @@ static int bf5xx_i2s_suspend(struct snd_soc_dai *dai) | |||
228 | 226 | ||
229 | pr_debug("%s : sport %d\n", __func__, dai->id); | 227 | pr_debug("%s : sport %d\n", __func__, dai->id); |
230 | 228 | ||
231 | if (dai->capture.active) | 229 | if (dai->capture_active) |
232 | sport_rx_stop(sport_handle); | 230 | sport_rx_stop(sport_handle); |
233 | if (dai->playback.active) | 231 | if (dai->playback_active) |
234 | sport_tx_stop(sport_handle); | 232 | sport_tx_stop(sport_handle); |
235 | return 0; | 233 | return 0; |
236 | } | 234 | } |
@@ -277,9 +275,7 @@ static struct snd_soc_dai_ops bf5xx_i2s_dai_ops = { | |||
277 | .set_fmt = bf5xx_i2s_set_dai_fmt, | 275 | .set_fmt = bf5xx_i2s_set_dai_fmt, |
278 | }; | 276 | }; |
279 | 277 | ||
280 | struct snd_soc_dai bf5xx_i2s_dai = { | 278 | static struct snd_soc_dai_driver bf5xx_i2s_dai = { |
281 | .name = "bf5xx-i2s", | ||
282 | .id = 0, | ||
283 | .probe = bf5xx_i2s_probe, | 279 | .probe = bf5xx_i2s_probe, |
284 | .remove = bf5xx_i2s_remove, | 280 | .remove = bf5xx_i2s_remove, |
285 | .suspend = bf5xx_i2s_suspend, | 281 | .suspend = bf5xx_i2s_suspend, |
@@ -296,18 +292,39 @@ struct snd_soc_dai bf5xx_i2s_dai = { | |||
296 | .formats = BF5XX_I2S_FORMATS,}, | 292 | .formats = BF5XX_I2S_FORMATS,}, |
297 | .ops = &bf5xx_i2s_dai_ops, | 293 | .ops = &bf5xx_i2s_dai_ops, |
298 | }; | 294 | }; |
299 | EXPORT_SYMBOL_GPL(bf5xx_i2s_dai); | 295 | |
296 | static int bfin_i2s_drv_probe(struct platform_device *pdev) | ||
297 | { | ||
298 | return snd_soc_register_dai(&pdev->dev, &bf5xx_i2s_dai); | ||
299 | } | ||
300 | |||
301 | static int __devexit bfin_i2s_drv_remove(struct platform_device *pdev) | ||
302 | { | ||
303 | snd_soc_unregister_dai(&pdev->dev); | ||
304 | return 0; | ||
305 | } | ||
306 | |||
307 | static struct platform_driver bfin_i2s_driver = { | ||
308 | .probe = bfin_i2s_drv_probe, | ||
309 | .remove = __devexit_p(bfin_i2s_drv_remove), | ||
310 | |||
311 | .driver = { | ||
312 | .name = "bf5xx-i2s", | ||
313 | .owner = THIS_MODULE, | ||
314 | }, | ||
315 | }; | ||
300 | 316 | ||
301 | static int __init bfin_i2s_init(void) | 317 | static int __init bfin_i2s_init(void) |
302 | { | 318 | { |
303 | return snd_soc_register_dai(&bf5xx_i2s_dai); | 319 | return platform_driver_register(&bfin_i2s_driver); |
304 | } | 320 | } |
305 | module_init(bfin_i2s_init); | ||
306 | 321 | ||
307 | static void __exit bfin_i2s_exit(void) | 322 | static void __exit bfin_i2s_exit(void) |
308 | { | 323 | { |
309 | snd_soc_unregister_dai(&bf5xx_i2s_dai); | 324 | platform_driver_unregister(&bfin_i2s_driver); |
310 | } | 325 | } |
326 | |||
327 | module_init(bfin_i2s_init); | ||
311 | module_exit(bfin_i2s_exit); | 328 | module_exit(bfin_i2s_exit); |
312 | 329 | ||
313 | /* Module information */ | 330 | /* Module information */ |