aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/samsung
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/samsung')
-rw-r--r--sound/soc/samsung/ac97.c16
-rw-r--r--sound/soc/samsung/bells.c12
-rw-r--r--sound/soc/samsung/dma.c24
-rw-r--r--sound/soc/samsung/dma.h3
-rw-r--r--sound/soc/samsung/goni_wm8994.c2
-rw-r--r--sound/soc/samsung/h1940_uda1380.c2
-rw-r--r--sound/soc/samsung/i2s.c13
-rw-r--r--sound/soc/samsung/idma.c6
-rw-r--r--sound/soc/samsung/jive_wm8750.c2
-rw-r--r--sound/soc/samsung/littlemill.c10
-rw-r--r--sound/soc/samsung/ln2440sbc_alc650.c2
-rw-r--r--sound/soc/samsung/lowland.c8
-rw-r--r--sound/soc/samsung/neo1973_wm8753.c2
-rw-r--r--sound/soc/samsung/pcm.c15
-rw-r--r--sound/soc/samsung/rx1950_uda1380.c2
-rw-r--r--sound/soc/samsung/s3c2412-i2s.c26
-rw-r--r--sound/soc/samsung/s3c24xx-i2s.c26
-rw-r--r--sound/soc/samsung/s3c24xx_simtec.c6
-rw-r--r--sound/soc/samsung/s3c24xx_simtec_hermes.c6
-rw-r--r--sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c6
-rw-r--r--sound/soc/samsung/s3c24xx_uda134x.c2
-rw-r--r--sound/soc/samsung/smartq_wm8987.c2
-rw-r--r--sound/soc/samsung/smdk2443_wm9710.c2
-rw-r--r--sound/soc/samsung/smdk_spdif.c2
-rw-r--r--sound/soc/samsung/smdk_wm8580.c6
-rw-r--r--sound/soc/samsung/smdk_wm8580pcm.c8
-rw-r--r--sound/soc/samsung/smdk_wm8994.c10
-rw-r--r--sound/soc/samsung/smdk_wm8994pcm.c8
-rw-r--r--sound/soc/samsung/smdk_wm9713.c2
-rw-r--r--sound/soc/samsung/spdif.c16
-rw-r--r--sound/soc/samsung/speyside.c8
-rw-r--r--sound/soc/samsung/tobermory.c8
32 files changed, 159 insertions, 104 deletions
diff --git a/sound/soc/samsung/ac97.c b/sound/soc/samsung/ac97.c
index 386bab1f99ab..0df3c5644cfa 100644
--- a/sound/soc/samsung/ac97.c
+++ b/sound/soc/samsung/ac97.c
@@ -370,7 +370,7 @@ static struct snd_soc_dai_driver s3c_ac97_dai[] = {
370 }, 370 },
371}; 371};
372 372
373static __devinit int s3c_ac97_probe(struct platform_device *pdev) 373static int s3c_ac97_probe(struct platform_device *pdev)
374{ 374{
375 struct resource *mem_res, *dmatx_res, *dmarx_res, *dmamic_res, *irq_res; 375 struct resource *mem_res, *dmatx_res, *dmarx_res, *dmamic_res, *irq_res;
376 struct s3c_audio_pdata *ac97_pdata; 376 struct s3c_audio_pdata *ac97_pdata;
@@ -462,8 +462,15 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
462 if (ret) 462 if (ret)
463 goto err5; 463 goto err5;
464 464
465 return 0; 465 ret = asoc_dma_platform_register(&pdev->dev);
466 if (ret) {
467 dev_err(&pdev->dev, "failed to get register DMA: %d\n", ret);
468 goto err6;
469 }
466 470
471 return 0;
472err6:
473 snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(s3c_ac97_dai));
467err5: 474err5:
468 free_irq(irq_res->start, NULL); 475 free_irq(irq_res->start, NULL);
469err4: 476err4:
@@ -478,10 +485,11 @@ err1:
478 return ret; 485 return ret;
479} 486}
480 487
481static __devexit int s3c_ac97_remove(struct platform_device *pdev) 488static int s3c_ac97_remove(struct platform_device *pdev)
482{ 489{
483 struct resource *mem_res, *irq_res; 490 struct resource *mem_res, *irq_res;
484 491
492 asoc_dma_platform_unregister(&pdev->dev);
485 snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(s3c_ac97_dai)); 493 snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(s3c_ac97_dai));
486 494
487 irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); 495 irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
@@ -502,7 +510,7 @@ static __devexit int s3c_ac97_remove(struct platform_device *pdev)
502 510
503static struct platform_driver s3c_ac97_driver = { 511static struct platform_driver s3c_ac97_driver = {
504 .probe = s3c_ac97_probe, 512 .probe = s3c_ac97_probe,
505 .remove = __devexit_p(s3c_ac97_remove), 513 .remove = s3c_ac97_remove,
506 .driver = { 514 .driver = {
507 .name = "samsung-ac97", 515 .name = "samsung-ac97",
508 .owner = THIS_MODULE, 516 .owner = THIS_MODULE,
diff --git a/sound/soc/samsung/bells.c b/sound/soc/samsung/bells.c
index 59ffd6c7ee30..ceed466af9ff 100644
--- a/sound/soc/samsung/bells.c
+++ b/sound/soc/samsung/bells.c
@@ -233,7 +233,7 @@ static struct snd_soc_dai_link bells_dai_wm2200[] = {
233 .stream_name = "CPU-DSP", 233 .stream_name = "CPU-DSP",
234 .cpu_dai_name = "samsung-i2s.0", 234 .cpu_dai_name = "samsung-i2s.0",
235 .codec_dai_name = "wm0010-sdi1", 235 .codec_dai_name = "wm0010-sdi1",
236 .platform_name = "samsung-audio", 236 .platform_name = "samsung-i2s.0",
237 .codec_name = "spi0.0", 237 .codec_name = "spi0.0",
238 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF 238 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
239 | SND_SOC_DAIFMT_CBM_CFM, 239 | SND_SOC_DAIFMT_CBM_CFM,
@@ -257,7 +257,7 @@ static struct snd_soc_dai_link bells_dai_wm5102[] = {
257 .stream_name = "CPU-DSP", 257 .stream_name = "CPU-DSP",
258 .cpu_dai_name = "samsung-i2s.0", 258 .cpu_dai_name = "samsung-i2s.0",
259 .codec_dai_name = "wm0010-sdi1", 259 .codec_dai_name = "wm0010-sdi1",
260 .platform_name = "samsung-audio", 260 .platform_name = "samsung-i2s.0",
261 .codec_name = "spi0.0", 261 .codec_name = "spi0.0",
262 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF 262 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
263 | SND_SOC_DAIFMT_CBM_CFM, 263 | SND_SOC_DAIFMT_CBM_CFM,
@@ -303,7 +303,7 @@ static struct snd_soc_dai_link bells_dai_wm5110[] = {
303 .stream_name = "CPU-DSP", 303 .stream_name = "CPU-DSP",
304 .cpu_dai_name = "samsung-i2s.0", 304 .cpu_dai_name = "samsung-i2s.0",
305 .codec_dai_name = "wm0010-sdi1", 305 .codec_dai_name = "wm0010-sdi1",
306 .platform_name = "samsung-audio", 306 .platform_name = "samsung-i2s.0",
307 .codec_name = "spi0.0", 307 .codec_name = "spi0.0",
308 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF 308 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
309 | SND_SOC_DAIFMT_CBM_CFM, 309 | SND_SOC_DAIFMT_CBM_CFM,
@@ -412,7 +412,7 @@ static struct snd_soc_card bells_cards[] = {
412}; 412};
413 413
414 414
415static __devinit int bells_probe(struct platform_device *pdev) 415static int bells_probe(struct platform_device *pdev)
416{ 416{
417 int ret; 417 int ret;
418 418
@@ -429,7 +429,7 @@ static __devinit int bells_probe(struct platform_device *pdev)
429 return 0; 429 return 0;
430} 430}
431 431
432static int __devexit bells_remove(struct platform_device *pdev) 432static int bells_remove(struct platform_device *pdev)
433{ 433{
434 snd_soc_unregister_card(&bells_cards[pdev->id]); 434 snd_soc_unregister_card(&bells_cards[pdev->id]);
435 435
@@ -443,7 +443,7 @@ static struct platform_driver bells_driver = {
443 .pm = &snd_soc_pm_ops, 443 .pm = &snd_soc_pm_ops,
444 }, 444 },
445 .probe = bells_probe, 445 .probe = bells_probe,
446 .remove = __devexit_p(bells_remove), 446 .remove = bells_remove,
447}; 447};
448 448
449module_platform_driver(bells_driver); 449module_platform_driver(bells_driver);
diff --git a/sound/soc/samsung/dma.c b/sound/soc/samsung/dma.c
index b70964ea448c..db87628d7630 100644
--- a/sound/soc/samsung/dma.c
+++ b/sound/soc/samsung/dma.c
@@ -432,30 +432,18 @@ static struct snd_soc_platform_driver samsung_asoc_platform = {
432 .pcm_free = dma_free_dma_buffers, 432 .pcm_free = dma_free_dma_buffers,
433}; 433};
434 434
435static int __devinit samsung_asoc_platform_probe(struct platform_device *pdev) 435int asoc_dma_platform_register(struct device *dev)
436{ 436{
437 return snd_soc_register_platform(&pdev->dev, &samsung_asoc_platform); 437 return snd_soc_register_platform(dev, &samsung_asoc_platform);
438} 438}
439EXPORT_SYMBOL_GPL(asoc_dma_platform_register);
439 440
440static int __devexit samsung_asoc_platform_remove(struct platform_device *pdev) 441void asoc_dma_platform_unregister(struct device *dev)
441{ 442{
442 snd_soc_unregister_platform(&pdev->dev); 443 snd_soc_unregister_platform(dev);
443 return 0;
444} 444}
445 445EXPORT_SYMBOL_GPL(asoc_dma_platform_unregister);
446static struct platform_driver asoc_dma_driver = {
447 .driver = {
448 .name = "samsung-audio",
449 .owner = THIS_MODULE,
450 },
451
452 .probe = samsung_asoc_platform_probe,
453 .remove = __devexit_p(samsung_asoc_platform_remove),
454};
455
456module_platform_driver(asoc_dma_driver);
457 446
458MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>"); 447MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
459MODULE_DESCRIPTION("Samsung ASoC DMA Driver"); 448MODULE_DESCRIPTION("Samsung ASoC DMA Driver");
460MODULE_LICENSE("GPL"); 449MODULE_LICENSE("GPL");
461MODULE_ALIAS("platform:samsung-audio");
diff --git a/sound/soc/samsung/dma.h b/sound/soc/samsung/dma.h
index 7d1ead77ef21..73d8c7c8a1e8 100644
--- a/sound/soc/samsung/dma.h
+++ b/sound/soc/samsung/dma.h
@@ -21,4 +21,7 @@ struct s3c_dma_params {
21 struct samsung_dma_ops *ops; 21 struct samsung_dma_ops *ops;
22}; 22};
23 23
24int asoc_dma_platform_register(struct device *dev);
25void asoc_dma_platform_unregister(struct device *dev);
26
24#endif 27#endif
diff --git a/sound/soc/samsung/goni_wm8994.c b/sound/soc/samsung/goni_wm8994.c
index c23c2ae91f58..d37ede58e0a8 100644
--- a/sound/soc/samsung/goni_wm8994.c
+++ b/sound/soc/samsung/goni_wm8994.c
@@ -228,7 +228,7 @@ static struct snd_soc_dai_link goni_dai[] = {
228 .stream_name = "WM8994 HiFi", 228 .stream_name = "WM8994 HiFi",
229 .cpu_dai_name = "samsung-i2s.0", 229 .cpu_dai_name = "samsung-i2s.0",
230 .codec_dai_name = "wm8994-aif1", 230 .codec_dai_name = "wm8994-aif1",
231 .platform_name = "samsung-audio", 231 .platform_name = "samsung-i2s.0",
232 .codec_name = "wm8994-codec.0-001a", 232 .codec_name = "wm8994-codec.0-001a",
233 .init = goni_wm8994_init, 233 .init = goni_wm8994_init,
234 .ops = &goni_hifi_ops, 234 .ops = &goni_hifi_ops,
diff --git a/sound/soc/samsung/h1940_uda1380.c b/sound/soc/samsung/h1940_uda1380.c
index 6e3257717c54..3870e9678b5d 100644
--- a/sound/soc/samsung/h1940_uda1380.c
+++ b/sound/soc/samsung/h1940_uda1380.c
@@ -207,7 +207,7 @@ static struct snd_soc_dai_link h1940_uda1380_dai[] = {
207 .cpu_dai_name = "s3c24xx-iis", 207 .cpu_dai_name = "s3c24xx-iis",
208 .codec_dai_name = "uda1380-hifi", 208 .codec_dai_name = "uda1380-hifi",
209 .init = h1940_uda1380_init, 209 .init = h1940_uda1380_init,
210 .platform_name = "samsung-audio", 210 .platform_name = "s3c24xx-iis",
211 .codec_name = "uda1380-codec.0-001a", 211 .codec_name = "uda1380-codec.0-001a",
212 .ops = &h1940_ops, 212 .ops = &h1940_ops,
213 }, 213 },
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index aaf57b7caebb..d2d124f1dd1b 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -952,8 +952,7 @@ static const struct snd_soc_dai_ops samsung_i2s_dai_ops = {
952 SNDRV_PCM_FMTBIT_S16_LE | \ 952 SNDRV_PCM_FMTBIT_S16_LE | \
953 SNDRV_PCM_FMTBIT_S24_LE) 953 SNDRV_PCM_FMTBIT_S24_LE)
954 954
955static __devinit 955static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
956struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
957{ 956{
958 struct i2s_dai *i2s; 957 struct i2s_dai *i2s;
959 958
@@ -994,7 +993,7 @@ struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec)
994 return i2s; 993 return i2s;
995} 994}
996 995
997static __devinit int samsung_i2s_probe(struct platform_device *pdev) 996static int samsung_i2s_probe(struct platform_device *pdev)
998{ 997{
999 u32 dma_pl_chan, dma_cp_chan, dma_pl_sec_chan; 998 u32 dma_pl_chan, dma_cp_chan, dma_pl_sec_chan;
1000 struct i2s_dai *pri_dai, *sec_dai = NULL; 999 struct i2s_dai *pri_dai, *sec_dai = NULL;
@@ -1009,6 +1008,7 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
1009 sec_dai = dev_get_drvdata(&pdev->dev); 1008 sec_dai = dev_get_drvdata(&pdev->dev);
1010 snd_soc_register_dai(&sec_dai->pdev->dev, 1009 snd_soc_register_dai(&sec_dai->pdev->dev,
1011 &sec_dai->i2s_dai_drv); 1010 &sec_dai->i2s_dai_drv);
1011 asoc_dma_platform_register(&pdev->dev);
1012 return 0; 1012 return 0;
1013 } 1013 }
1014 1014
@@ -1107,6 +1107,8 @@ static __devinit int samsung_i2s_probe(struct platform_device *pdev)
1107 1107
1108 pm_runtime_enable(&pdev->dev); 1108 pm_runtime_enable(&pdev->dev);
1109 1109
1110 asoc_dma_platform_register(&pdev->dev);
1111
1110 return 0; 1112 return 0;
1111err: 1113err:
1112 release_mem_region(regs_base, resource_size(res)); 1114 release_mem_region(regs_base, resource_size(res));
@@ -1114,7 +1116,7 @@ err:
1114 return ret; 1116 return ret;
1115} 1117}
1116 1118
1117static __devexit int samsung_i2s_remove(struct platform_device *pdev) 1119static int samsung_i2s_remove(struct platform_device *pdev)
1118{ 1120{
1119 struct i2s_dai *i2s, *other; 1121 struct i2s_dai *i2s, *other;
1120 struct resource *res; 1122 struct resource *res;
@@ -1135,6 +1137,7 @@ static __devexit int samsung_i2s_remove(struct platform_device *pdev)
1135 i2s->pri_dai = NULL; 1137 i2s->pri_dai = NULL;
1136 i2s->sec_dai = NULL; 1138 i2s->sec_dai = NULL;
1137 1139
1140 asoc_dma_platform_unregister(&pdev->dev);
1138 snd_soc_unregister_dai(&pdev->dev); 1141 snd_soc_unregister_dai(&pdev->dev);
1139 1142
1140 return 0; 1143 return 0;
@@ -1142,7 +1145,7 @@ static __devexit int samsung_i2s_remove(struct platform_device *pdev)
1142 1145
1143static struct platform_driver samsung_i2s_driver = { 1146static struct platform_driver samsung_i2s_driver = {
1144 .probe = samsung_i2s_probe, 1147 .probe = samsung_i2s_probe,
1145 .remove = __devexit_p(samsung_i2s_remove), 1148 .remove = samsung_i2s_remove,
1146 .driver = { 1149 .driver = {
1147 .name = "samsung-i2s", 1150 .name = "samsung-i2s",
1148 .owner = THIS_MODULE, 1151 .owner = THIS_MODULE,
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c
index c227c3163cae..a07950b0c8ce 100644
--- a/sound/soc/samsung/idma.c
+++ b/sound/soc/samsung/idma.c
@@ -416,12 +416,12 @@ static struct snd_soc_platform_driver asoc_idma_platform = {
416 .pcm_free = idma_free, 416 .pcm_free = idma_free,
417}; 417};
418 418
419static int __devinit asoc_idma_platform_probe(struct platform_device *pdev) 419static int asoc_idma_platform_probe(struct platform_device *pdev)
420{ 420{
421 return snd_soc_register_platform(&pdev->dev, &asoc_idma_platform); 421 return snd_soc_register_platform(&pdev->dev, &asoc_idma_platform);
422} 422}
423 423
424static int __devexit asoc_idma_platform_remove(struct platform_device *pdev) 424static int asoc_idma_platform_remove(struct platform_device *pdev)
425{ 425{
426 snd_soc_unregister_platform(&pdev->dev); 426 snd_soc_unregister_platform(&pdev->dev);
427 return 0; 427 return 0;
@@ -434,7 +434,7 @@ static struct platform_driver asoc_idma_driver = {
434 }, 434 },
435 435
436 .probe = asoc_idma_platform_probe, 436 .probe = asoc_idma_platform_probe,
437 .remove = __devexit_p(asoc_idma_platform_remove), 437 .remove = asoc_idma_platform_remove,
438}; 438};
439 439
440module_platform_driver(asoc_idma_driver); 440module_platform_driver(asoc_idma_driver);
diff --git a/sound/soc/samsung/jive_wm8750.c b/sound/soc/samsung/jive_wm8750.c
index 1578663a1faa..b5f6abd9d221 100644
--- a/sound/soc/samsung/jive_wm8750.c
+++ b/sound/soc/samsung/jive_wm8750.c
@@ -118,7 +118,7 @@ static struct snd_soc_dai_link jive_dai = {
118 .stream_name = "WM8750", 118 .stream_name = "WM8750",
119 .cpu_dai_name = "s3c2412-i2s", 119 .cpu_dai_name = "s3c2412-i2s",
120 .codec_dai_name = "wm8750-hifi", 120 .codec_dai_name = "wm8750-hifi",
121 .platform_name = "samsung-audio", 121 .platform_name = "s3c2412-i2s",
122 .codec_name = "wm8750.0-001a", 122 .codec_name = "wm8750.0-001a",
123 .init = jive_wm8750_init, 123 .init = jive_wm8750_init,
124 .ops = &jive_ops, 124 .ops = &jive_ops,
diff --git a/sound/soc/samsung/littlemill.c b/sound/soc/samsung/littlemill.c
index ee52c8a00779..bfb91f34a22a 100644
--- a/sound/soc/samsung/littlemill.c
+++ b/sound/soc/samsung/littlemill.c
@@ -145,7 +145,7 @@ static struct snd_soc_dai_link littlemill_dai[] = {
145 .stream_name = "CPU", 145 .stream_name = "CPU",
146 .cpu_dai_name = "samsung-i2s.0", 146 .cpu_dai_name = "samsung-i2s.0",
147 .codec_dai_name = "wm8994-aif1", 147 .codec_dai_name = "wm8994-aif1",
148 .platform_name = "samsung-audio", 148 .platform_name = "samsung-i2s.0",
149 .codec_name = "wm8994-codec", 149 .codec_name = "wm8994-codec",
150 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF 150 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
151 | SND_SOC_DAIFMT_CBM_CFM, 151 | SND_SOC_DAIFMT_CBM_CFM,
@@ -270,7 +270,7 @@ static int littlemill_late_probe(struct snd_soc_card *card)
270 return ret; 270 return ret;
271 271
272 /* This will check device compatibility itself */ 272 /* This will check device compatibility itself */
273 wm8958_mic_detect(codec, &littlemill_headset, NULL, NULL); 273 wm8958_mic_detect(codec, &littlemill_headset, NULL, NULL, NULL, NULL);
274 274
275 /* As will this */ 275 /* As will this */
276 wm8994_mic_detect(codec, &littlemill_headset, 1); 276 wm8994_mic_detect(codec, &littlemill_headset, 1);
@@ -297,7 +297,7 @@ static struct snd_soc_card littlemill = {
297 .late_probe = littlemill_late_probe, 297 .late_probe = littlemill_late_probe,
298}; 298};
299 299
300static __devinit int littlemill_probe(struct platform_device *pdev) 300static int littlemill_probe(struct platform_device *pdev)
301{ 301{
302 struct snd_soc_card *card = &littlemill; 302 struct snd_soc_card *card = &littlemill;
303 int ret; 303 int ret;
@@ -314,7 +314,7 @@ static __devinit int littlemill_probe(struct platform_device *pdev)
314 return 0; 314 return 0;
315} 315}
316 316
317static int __devexit littlemill_remove(struct platform_device *pdev) 317static int littlemill_remove(struct platform_device *pdev)
318{ 318{
319 struct snd_soc_card *card = platform_get_drvdata(pdev); 319 struct snd_soc_card *card = platform_get_drvdata(pdev);
320 320
@@ -330,7 +330,7 @@ static struct platform_driver littlemill_driver = {
330 .pm = &snd_soc_pm_ops, 330 .pm = &snd_soc_pm_ops,
331 }, 331 },
332 .probe = littlemill_probe, 332 .probe = littlemill_probe,
333 .remove = __devexit_p(littlemill_remove), 333 .remove = littlemill_remove,
334}; 334};
335 335
336module_platform_driver(littlemill_driver); 336module_platform_driver(littlemill_driver);
diff --git a/sound/soc/samsung/ln2440sbc_alc650.c b/sound/soc/samsung/ln2440sbc_alc650.c
index 69c4a5934a4d..9342fc270c2b 100644
--- a/sound/soc/samsung/ln2440sbc_alc650.c
+++ b/sound/soc/samsung/ln2440sbc_alc650.c
@@ -28,7 +28,7 @@ static struct snd_soc_dai_link ln2440sbc_dai[] = {
28 .cpu_dai_name = "samsung-ac97", 28 .cpu_dai_name = "samsung-ac97",
29 .codec_dai_name = "ac97-hifi", 29 .codec_dai_name = "ac97-hifi",
30 .codec_name = "ac97-codec", 30 .codec_name = "ac97-codec",
31 .platform_name = "samsung-audio", 31 .platform_name = "samsung-ac97",
32}, 32},
33}; 33};
34 34
diff --git a/sound/soc/samsung/lowland.c b/sound/soc/samsung/lowland.c
index 6abf341c4a2a..570cf5229508 100644
--- a/sound/soc/samsung/lowland.c
+++ b/sound/soc/samsung/lowland.c
@@ -99,7 +99,7 @@ static struct snd_soc_dai_link lowland_dai[] = {
99 .stream_name = "CPU", 99 .stream_name = "CPU",
100 .cpu_dai_name = "samsung-i2s.0", 100 .cpu_dai_name = "samsung-i2s.0",
101 .codec_dai_name = "wm5100-aif1", 101 .codec_dai_name = "wm5100-aif1",
102 .platform_name = "samsung-audio", 102 .platform_name = "samsung-i2s.0",
103 .codec_name = "wm5100.1-001a", 103 .codec_name = "wm5100.1-001a",
104 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | 104 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
105 SND_SOC_DAIFMT_CBM_CFM, 105 SND_SOC_DAIFMT_CBM_CFM,
@@ -180,7 +180,7 @@ static struct snd_soc_card lowland = {
180 .num_dapm_routes = ARRAY_SIZE(audio_paths), 180 .num_dapm_routes = ARRAY_SIZE(audio_paths),
181}; 181};
182 182
183static __devinit int lowland_probe(struct platform_device *pdev) 183static int lowland_probe(struct platform_device *pdev)
184{ 184{
185 struct snd_soc_card *card = &lowland; 185 struct snd_soc_card *card = &lowland;
186 int ret; 186 int ret;
@@ -197,7 +197,7 @@ static __devinit int lowland_probe(struct platform_device *pdev)
197 return 0; 197 return 0;
198} 198}
199 199
200static int __devexit lowland_remove(struct platform_device *pdev) 200static int lowland_remove(struct platform_device *pdev)
201{ 201{
202 struct snd_soc_card *card = platform_get_drvdata(pdev); 202 struct snd_soc_card *card = platform_get_drvdata(pdev);
203 203
@@ -213,7 +213,7 @@ static struct platform_driver lowland_driver = {
213 .pm = &snd_soc_pm_ops, 213 .pm = &snd_soc_pm_ops,
214 }, 214 },
215 .probe = lowland_probe, 215 .probe = lowland_probe,
216 .remove = __devexit_p(lowland_remove), 216 .remove = lowland_remove,
217}; 217};
218 218
219module_platform_driver(lowland_driver); 219module_platform_driver(lowland_driver);
diff --git a/sound/soc/samsung/neo1973_wm8753.c b/sound/soc/samsung/neo1973_wm8753.c
index 321d51134e47..c7e965f80d2e 100644
--- a/sound/soc/samsung/neo1973_wm8753.c
+++ b/sound/soc/samsung/neo1973_wm8753.c
@@ -364,7 +364,7 @@ static struct snd_soc_dai_link neo1973_dai[] = {
364{ /* Hifi Playback - for similatious use with voice below */ 364{ /* Hifi Playback - for similatious use with voice below */
365 .name = "WM8753", 365 .name = "WM8753",
366 .stream_name = "WM8753 HiFi", 366 .stream_name = "WM8753 HiFi",
367 .platform_name = "samsung-audio", 367 .platform_name = "s3c24xx-iis",
368 .cpu_dai_name = "s3c24xx-iis", 368 .cpu_dai_name = "s3c24xx-iis",
369 .codec_dai_name = "wm8753-hifi", 369 .codec_dai_name = "wm8753-hifi",
370 .codec_name = "wm8753.0-001a", 370 .codec_name = "wm8753.0-001a",
diff --git a/sound/soc/samsung/pcm.c b/sound/soc/samsung/pcm.c
index 45f4a752d2a0..13bab79ad93d 100644
--- a/sound/soc/samsung/pcm.c
+++ b/sound/soc/samsung/pcm.c
@@ -490,7 +490,7 @@ static struct snd_soc_dai_driver s3c_pcm_dai[] = {
490 }, 490 },
491}; 491};
492 492
493static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev) 493static int s3c_pcm_dev_probe(struct platform_device *pdev)
494{ 494{
495 struct s3c_pcm_info *pcm; 495 struct s3c_pcm_info *pcm;
496 struct resource *mem_res, *dmatx_res, *dmarx_res; 496 struct resource *mem_res, *dmatx_res, *dmarx_res;
@@ -589,8 +589,16 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
589 goto err5; 589 goto err5;
590 } 590 }
591 591
592 ret = asoc_dma_platform_register(&pdev->dev);
593 if (ret) {
594 dev_err(&pdev->dev, "failed to get register DMA: %d\n", ret);
595 goto err6;
596 }
597
592 return 0; 598 return 0;
593 599
600err6:
601 snd_soc_unregister_dai(&pdev->dev);
594err5: 602err5:
595 clk_disable_unprepare(pcm->pclk); 603 clk_disable_unprepare(pcm->pclk);
596 clk_put(pcm->pclk); 604 clk_put(pcm->pclk);
@@ -605,11 +613,12 @@ err1:
605 return ret; 613 return ret;
606} 614}
607 615
608static __devexit int s3c_pcm_dev_remove(struct platform_device *pdev) 616static int s3c_pcm_dev_remove(struct platform_device *pdev)
609{ 617{
610 struct s3c_pcm_info *pcm = &s3c_pcm[pdev->id]; 618 struct s3c_pcm_info *pcm = &s3c_pcm[pdev->id];
611 struct resource *mem_res; 619 struct resource *mem_res;
612 620
621 asoc_dma_platform_unregister(&pdev->dev);
613 snd_soc_unregister_dai(&pdev->dev); 622 snd_soc_unregister_dai(&pdev->dev);
614 623
615 pm_runtime_disable(&pdev->dev); 624 pm_runtime_disable(&pdev->dev);
@@ -629,7 +638,7 @@ static __devexit int s3c_pcm_dev_remove(struct platform_device *pdev)
629 638
630static struct platform_driver s3c_pcm_driver = { 639static struct platform_driver s3c_pcm_driver = {
631 .probe = s3c_pcm_dev_probe, 640 .probe = s3c_pcm_dev_probe,
632 .remove = __devexit_p(s3c_pcm_dev_remove), 641 .remove = s3c_pcm_dev_remove,
633 .driver = { 642 .driver = {
634 .name = "samsung-pcm", 643 .name = "samsung-pcm",
635 .owner = THIS_MODULE, 644 .owner = THIS_MODULE,
diff --git a/sound/soc/samsung/rx1950_uda1380.c b/sound/soc/samsung/rx1950_uda1380.c
index 21e12361a9cd..a5826ea9cad6 100644
--- a/sound/soc/samsung/rx1950_uda1380.c
+++ b/sound/soc/samsung/rx1950_uda1380.c
@@ -85,7 +85,7 @@ static struct snd_soc_dai_link rx1950_uda1380_dai[] = {
85 .cpu_dai_name = "s3c24xx-iis", 85 .cpu_dai_name = "s3c24xx-iis",
86 .codec_dai_name = "uda1380-hifi", 86 .codec_dai_name = "uda1380-hifi",
87 .init = rx1950_uda1380_init, 87 .init = rx1950_uda1380_init,
88 .platform_name = "samsung-audio", 88 .platform_name = "s3c24xx-iis",
89 .codec_name = "uda1380-codec.0-001a", 89 .codec_name = "uda1380-codec.0-001a",
90 .ops = &rx1950_ops, 90 .ops = &rx1950_ops,
91 }, 91 },
diff --git a/sound/soc/samsung/s3c2412-i2s.c b/sound/soc/samsung/s3c2412-i2s.c
index ac7701b3c5dc..221337716393 100644
--- a/sound/soc/samsung/s3c2412-i2s.c
+++ b/sound/soc/samsung/s3c2412-i2s.c
@@ -160,20 +160,38 @@ static struct snd_soc_dai_driver s3c2412_i2s_dai = {
160 .ops = &s3c2412_i2s_dai_ops, 160 .ops = &s3c2412_i2s_dai_ops,
161}; 161};
162 162
163static __devinit int s3c2412_iis_dev_probe(struct platform_device *pdev) 163static int s3c2412_iis_dev_probe(struct platform_device *pdev)
164{ 164{
165 return s3c_i2sv2_register_dai(&pdev->dev, -1, &s3c2412_i2s_dai); 165 int ret = 0;
166
167 ret = s3c_i2sv2_register_dai(&pdev->dev, -1, &s3c2412_i2s_dai);
168 if (ret) {
169 pr_err("failed to register the dai\n");
170 return ret;
171 }
172
173 ret = asoc_dma_platform_register(&pdev->dev);
174 if (ret) {
175 pr_err("failed to register the DMA: %d\n", ret);
176 goto err;
177 }
178
179 return 0;
180err:
181 snd_soc_unregister_dai(&pdev->dev);
182 return ret;
166} 183}
167 184
168static __devexit int s3c2412_iis_dev_remove(struct platform_device *pdev) 185static int s3c2412_iis_dev_remove(struct platform_device *pdev)
169{ 186{
187 asoc_dma_platform_unregister(&pdev->dev);
170 snd_soc_unregister_dai(&pdev->dev); 188 snd_soc_unregister_dai(&pdev->dev);
171 return 0; 189 return 0;
172} 190}
173 191
174static struct platform_driver s3c2412_iis_driver = { 192static struct platform_driver s3c2412_iis_driver = {
175 .probe = s3c2412_iis_dev_probe, 193 .probe = s3c2412_iis_dev_probe,
176 .remove = __devexit_p(s3c2412_iis_dev_remove), 194 .remove = s3c2412_iis_dev_remove,
177 .driver = { 195 .driver = {
178 .name = "s3c2412-iis", 196 .name = "s3c2412-iis",
179 .owner = THIS_MODULE, 197 .owner = THIS_MODULE,
diff --git a/sound/soc/samsung/s3c24xx-i2s.c b/sound/soc/samsung/s3c24xx-i2s.c
index 0aae3a3883dc..ee10e8704e97 100644
--- a/sound/soc/samsung/s3c24xx-i2s.c
+++ b/sound/soc/samsung/s3c24xx-i2s.c
@@ -465,20 +465,38 @@ static struct snd_soc_dai_driver s3c24xx_i2s_dai = {
465 .ops = &s3c24xx_i2s_dai_ops, 465 .ops = &s3c24xx_i2s_dai_ops,
466}; 466};
467 467
468static __devinit int s3c24xx_iis_dev_probe(struct platform_device *pdev) 468static int s3c24xx_iis_dev_probe(struct platform_device *pdev)
469{ 469{
470 return snd_soc_register_dai(&pdev->dev, &s3c24xx_i2s_dai); 470 int ret = 0;
471
472 ret = s3c_i2sv2_register_dai(&pdev->dev, -1, &s3c2412_i2s_dai);
473 if (ret) {
474 pr_err("failed to register the dai\n");
475 return ret;
476 }
477
478 ret = asoc_dma_platform_register(&pdev->dev);
479 if (ret) {
480 pr_err("failed to register the dma: %d\n", ret);
481 goto err;
482 }
483
484 return 0;
485err:
486 snd_soc_unregister_dai(&pdev->dev);
487 return ret;
471} 488}
472 489
473static __devexit int s3c24xx_iis_dev_remove(struct platform_device *pdev) 490static int s3c24xx_iis_dev_remove(struct platform_device *pdev)
474{ 491{
492 asoc_dma_platform_unregister(&pdev->dev);
475 snd_soc_unregister_dai(&pdev->dev); 493 snd_soc_unregister_dai(&pdev->dev);
476 return 0; 494 return 0;
477} 495}
478 496
479static struct platform_driver s3c24xx_iis_driver = { 497static struct platform_driver s3c24xx_iis_driver = {
480 .probe = s3c24xx_iis_dev_probe, 498 .probe = s3c24xx_iis_dev_probe,
481 .remove = __devexit_p(s3c24xx_iis_dev_remove), 499 .remove = s3c24xx_iis_dev_remove,
482 .driver = { 500 .driver = {
483 .name = "s3c24xx-iis", 501 .name = "s3c24xx-iis",
484 .owner = THIS_MODULE, 502 .owner = THIS_MODULE,
diff --git a/sound/soc/samsung/s3c24xx_simtec.c b/sound/soc/samsung/s3c24xx_simtec.c
index 335a7d8a4a8d..2c015f62ead6 100644
--- a/sound/soc/samsung/s3c24xx_simtec.c
+++ b/sound/soc/samsung/s3c24xx_simtec.c
@@ -313,8 +313,8 @@ const struct dev_pm_ops simtec_audio_pmops = {
313EXPORT_SYMBOL_GPL(simtec_audio_pmops); 313EXPORT_SYMBOL_GPL(simtec_audio_pmops);
314#endif 314#endif
315 315
316int __devinit simtec_audio_core_probe(struct platform_device *pdev, 316int simtec_audio_core_probe(struct platform_device *pdev,
317 struct snd_soc_card *card) 317 struct snd_soc_card *card)
318{ 318{
319 struct platform_device *snd_dev; 319 struct platform_device *snd_dev;
320 int ret; 320 int ret;
@@ -371,7 +371,7 @@ err_clk:
371} 371}
372EXPORT_SYMBOL_GPL(simtec_audio_core_probe); 372EXPORT_SYMBOL_GPL(simtec_audio_core_probe);
373 373
374int __devexit simtec_audio_remove(struct platform_device *pdev) 374int simtec_audio_remove(struct platform_device *pdev)
375{ 375{
376 struct platform_device *snd_dev = platform_get_drvdata(pdev); 376 struct platform_device *snd_dev = platform_get_drvdata(pdev);
377 377
diff --git a/sound/soc/samsung/s3c24xx_simtec_hermes.c b/sound/soc/samsung/s3c24xx_simtec_hermes.c
index 7ace6a87f41b..d8a0543cae5e 100644
--- a/sound/soc/samsung/s3c24xx_simtec_hermes.c
+++ b/sound/soc/samsung/s3c24xx_simtec_hermes.c
@@ -82,7 +82,7 @@ static struct snd_soc_dai_link simtec_dai_aic33 = {
82 .codec_name = "tlv320aic3x-codec.0-001a", 82 .codec_name = "tlv320aic3x-codec.0-001a",
83 .cpu_dai_name = "s3c24xx-iis", 83 .cpu_dai_name = "s3c24xx-iis",
84 .codec_dai_name = "tlv320aic3x-hifi", 84 .codec_dai_name = "tlv320aic3x-hifi",
85 .platform_name = "samsung-audio", 85 .platform_name = "s3c24xx-iis",
86 .init = simtec_hermes_init, 86 .init = simtec_hermes_init,
87}; 87};
88 88
@@ -99,7 +99,7 @@ static struct snd_soc_card snd_soc_machine_simtec_aic33 = {
99 .num_dapm_routes = ARRAY_SIZE(base_map), 99 .num_dapm_routes = ARRAY_SIZE(base_map),
100}; 100};
101 101
102static int __devinit simtec_audio_hermes_probe(struct platform_device *pd) 102static int simtec_audio_hermes_probe(struct platform_device *pd)
103{ 103{
104 dev_info(&pd->dev, "probing....\n"); 104 dev_info(&pd->dev, "probing....\n");
105 return simtec_audio_core_probe(pd, &snd_soc_machine_simtec_aic33); 105 return simtec_audio_core_probe(pd, &snd_soc_machine_simtec_aic33);
@@ -112,7 +112,7 @@ static struct platform_driver simtec_audio_hermes_platdrv = {
112 .pm = simtec_audio_pm, 112 .pm = simtec_audio_pm,
113 }, 113 },
114 .probe = simtec_audio_hermes_probe, 114 .probe = simtec_audio_hermes_probe,
115 .remove = __devexit_p(simtec_audio_remove), 115 .remove = simtec_audio_remove,
116}; 116};
117 117
118module_platform_driver(simtec_audio_hermes_platdrv); 118module_platform_driver(simtec_audio_hermes_platdrv);
diff --git a/sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c b/sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c
index c42d5f00b0e1..1ac0d7a63a3a 100644
--- a/sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c
+++ b/sound/soc/samsung/s3c24xx_simtec_tlv320aic23.c
@@ -71,7 +71,7 @@ static struct snd_soc_dai_link simtec_dai_aic23 = {
71 .codec_name = "tlv320aic3x-codec.0-001a", 71 .codec_name = "tlv320aic3x-codec.0-001a",
72 .cpu_dai_name = "s3c24xx-iis", 72 .cpu_dai_name = "s3c24xx-iis",
73 .codec_dai_name = "tlv320aic3x-hifi", 73 .codec_dai_name = "tlv320aic3x-hifi",
74 .platform_name = "samsung-audio", 74 .platform_name = "s3c24xx-iis",
75 .init = simtec_tlv320aic23_init, 75 .init = simtec_tlv320aic23_init,
76}; 76};
77 77
@@ -88,7 +88,7 @@ static struct snd_soc_card snd_soc_machine_simtec_aic23 = {
88 .num_dapm_routes = ARRAY_SIZE(base_map), 88 .num_dapm_routes = ARRAY_SIZE(base_map),
89}; 89};
90 90
91static int __devinit simtec_audio_tlv320aic23_probe(struct platform_device *pd) 91static int simtec_audio_tlv320aic23_probe(struct platform_device *pd)
92{ 92{
93 return simtec_audio_core_probe(pd, &snd_soc_machine_simtec_aic23); 93 return simtec_audio_core_probe(pd, &snd_soc_machine_simtec_aic23);
94} 94}
@@ -100,7 +100,7 @@ static struct platform_driver simtec_audio_tlv320aic23_driver = {
100 .pm = simtec_audio_pm, 100 .pm = simtec_audio_pm,
101 }, 101 },
102 .probe = simtec_audio_tlv320aic23_probe, 102 .probe = simtec_audio_tlv320aic23_probe,
103 .remove = __devexit_p(simtec_audio_remove), 103 .remove = simtec_audio_remove,
104}; 104};
105 105
106module_platform_driver(simtec_audio_tlv320aic23_driver); 106module_platform_driver(simtec_audio_tlv320aic23_driver);
diff --git a/sound/soc/samsung/s3c24xx_uda134x.c b/sound/soc/samsung/s3c24xx_uda134x.c
index d731042e51b0..333e1b7f06c7 100644
--- a/sound/soc/samsung/s3c24xx_uda134x.c
+++ b/sound/soc/samsung/s3c24xx_uda134x.c
@@ -224,7 +224,7 @@ static struct snd_soc_dai_link s3c24xx_uda134x_dai_link = {
224 .codec_dai_name = "uda134x-hifi", 224 .codec_dai_name = "uda134x-hifi",
225 .cpu_dai_name = "s3c24xx-iis", 225 .cpu_dai_name = "s3c24xx-iis",
226 .ops = &s3c24xx_uda134x_ops, 226 .ops = &s3c24xx_uda134x_ops,
227 .platform_name = "samsung-audio", 227 .platform_name = "s3c24xx-iis",
228}; 228};
229 229
230static struct snd_soc_card snd_soc_s3c24xx_uda134x = { 230static struct snd_soc_card snd_soc_s3c24xx_uda134x = {
diff --git a/sound/soc/samsung/smartq_wm8987.c b/sound/soc/samsung/smartq_wm8987.c
index f2dcb424ea25..58ae3237ef69 100644
--- a/sound/soc/samsung/smartq_wm8987.c
+++ b/sound/soc/samsung/smartq_wm8987.c
@@ -189,7 +189,7 @@ static struct snd_soc_dai_link smartq_dai[] = {
189 .stream_name = "SmartQ Hi-Fi", 189 .stream_name = "SmartQ Hi-Fi",
190 .cpu_dai_name = "samsung-i2s.0", 190 .cpu_dai_name = "samsung-i2s.0",
191 .codec_dai_name = "wm8750-hifi", 191 .codec_dai_name = "wm8750-hifi",
192 .platform_name = "samsung-audio", 192 .platform_name = "samsung-i2s.0",
193 .codec_name = "wm8750.0-0x1a", 193 .codec_name = "wm8750.0-0x1a",
194 .init = smartq_wm8987_init, 194 .init = smartq_wm8987_init,
195 .ops = &smartq_hifi_ops, 195 .ops = &smartq_hifi_ops,
diff --git a/sound/soc/samsung/smdk2443_wm9710.c b/sound/soc/samsung/smdk2443_wm9710.c
index 720ba29bb7e4..c390aad68cfb 100644
--- a/sound/soc/samsung/smdk2443_wm9710.c
+++ b/sound/soc/samsung/smdk2443_wm9710.c
@@ -24,7 +24,7 @@ static struct snd_soc_dai_link smdk2443_dai[] = {
24 .cpu_dai_name = "samsung-ac97", 24 .cpu_dai_name = "samsung-ac97",
25 .codec_dai_name = "ac97-hifi", 25 .codec_dai_name = "ac97-hifi",
26 .codec_name = "ac97-codec", 26 .codec_name = "ac97-codec",
27 .platform_name = "samsung-audio", 27 .platform_name = "samsung-ac97",
28}, 28},
29}; 29};
30 30
diff --git a/sound/soc/samsung/smdk_spdif.c b/sound/soc/samsung/smdk_spdif.c
index beaa9c15d697..a2f2363fe1c2 100644
--- a/sound/soc/samsung/smdk_spdif.c
+++ b/sound/soc/samsung/smdk_spdif.c
@@ -151,7 +151,7 @@ static struct snd_soc_ops smdk_spdif_ops = {
151static struct snd_soc_dai_link smdk_dai = { 151static struct snd_soc_dai_link smdk_dai = {
152 .name = "S/PDIF", 152 .name = "S/PDIF",
153 .stream_name = "S/PDIF PCM Playback", 153 .stream_name = "S/PDIF PCM Playback",
154 .platform_name = "samsung-audio", 154 .platform_name = "samsung-spdif",
155 .cpu_dai_name = "samsung-spdif", 155 .cpu_dai_name = "samsung-spdif",
156 .codec_dai_name = "dit-hifi", 156 .codec_dai_name = "dit-hifi",
157 .codec_name = "spdif-dit", 157 .codec_name = "spdif-dit",
diff --git a/sound/soc/samsung/smdk_wm8580.c b/sound/soc/samsung/smdk_wm8580.c
index ade2809cf393..7e2b710763be 100644
--- a/sound/soc/samsung/smdk_wm8580.c
+++ b/sound/soc/samsung/smdk_wm8580.c
@@ -176,7 +176,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
176 .stream_name = "Playback", 176 .stream_name = "Playback",
177 .cpu_dai_name = "samsung-i2s.0", 177 .cpu_dai_name = "samsung-i2s.0",
178 .codec_dai_name = "wm8580-hifi-playback", 178 .codec_dai_name = "wm8580-hifi-playback",
179 .platform_name = "samsung-audio", 179 .platform_name = "samsung-i2s.0",
180 .codec_name = "wm8580.0-001b", 180 .codec_name = "wm8580.0-001b",
181 .ops = &smdk_ops, 181 .ops = &smdk_ops,
182 }, 182 },
@@ -185,7 +185,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
185 .stream_name = "Capture", 185 .stream_name = "Capture",
186 .cpu_dai_name = "samsung-i2s.0", 186 .cpu_dai_name = "samsung-i2s.0",
187 .codec_dai_name = "wm8580-hifi-capture", 187 .codec_dai_name = "wm8580-hifi-capture",
188 .platform_name = "samsung-audio", 188 .platform_name = "samsung-i2s.0",
189 .codec_name = "wm8580.0-001b", 189 .codec_name = "wm8580.0-001b",
190 .init = smdk_wm8580_init_paiftx, 190 .init = smdk_wm8580_init_paiftx,
191 .ops = &smdk_ops, 191 .ops = &smdk_ops,
@@ -195,7 +195,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
195 .stream_name = "Playback", 195 .stream_name = "Playback",
196 .cpu_dai_name = "samsung-i2s.x", 196 .cpu_dai_name = "samsung-i2s.x",
197 .codec_dai_name = "wm8580-hifi-playback", 197 .codec_dai_name = "wm8580-hifi-playback",
198 .platform_name = "samsung-audio", 198 .platform_name = "samsung-i2s.x",
199 .codec_name = "wm8580.0-001b", 199 .codec_name = "wm8580.0-001b",
200 .ops = &smdk_ops, 200 .ops = &smdk_ops,
201 }, 201 },
diff --git a/sound/soc/samsung/smdk_wm8580pcm.c b/sound/soc/samsung/smdk_wm8580pcm.c
index fab5322e9f05..e43bd4294f99 100644
--- a/sound/soc/samsung/smdk_wm8580pcm.c
+++ b/sound/soc/samsung/smdk_wm8580pcm.c
@@ -135,7 +135,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
135 .stream_name = "Capture", 135 .stream_name = "Capture",
136 .cpu_dai_name = "samsung-pcm.0", 136 .cpu_dai_name = "samsung-pcm.0",
137 .codec_dai_name = "wm8580-hifi-capture", 137 .codec_dai_name = "wm8580-hifi-capture",
138 .platform_name = "samsung-audio", 138 .platform_name = "samsung-pcm.0",
139 .codec_name = "wm8580.0-001b", 139 .codec_name = "wm8580.0-001b",
140 .ops = &smdk_wm8580_pcm_ops, 140 .ops = &smdk_wm8580_pcm_ops,
141 }, 141 },
@@ -153,7 +153,7 @@ static struct snd_soc_card smdk_pcm = {
153 * is absent (or not connected), so we connect EXT_VOICE_CLK(OSC4), 153 * is absent (or not connected), so we connect EXT_VOICE_CLK(OSC4),
154 * 2.0484Mhz, directly with MCLK both Codec and SoC. 154 * 2.0484Mhz, directly with MCLK both Codec and SoC.
155 */ 155 */
156static int __devinit snd_smdk_probe(struct platform_device *pdev) 156static int snd_smdk_probe(struct platform_device *pdev)
157{ 157{
158 int ret = 0; 158 int ret = 0;
159 159
@@ -173,7 +173,7 @@ static int __devinit snd_smdk_probe(struct platform_device *pdev)
173 return 0; 173 return 0;
174} 174}
175 175
176static int __devexit snd_smdk_remove(struct platform_device *pdev) 176static int snd_smdk_remove(struct platform_device *pdev)
177{ 177{
178 snd_soc_unregister_card(&smdk_pcm); 178 snd_soc_unregister_card(&smdk_pcm);
179 platform_set_drvdata(pdev, NULL); 179 platform_set_drvdata(pdev, NULL);
@@ -186,7 +186,7 @@ static struct platform_driver snd_smdk_driver = {
186 .name = "samsung-smdk-pcm", 186 .name = "samsung-smdk-pcm",
187 }, 187 },
188 .probe = snd_smdk_probe, 188 .probe = snd_smdk_probe,
189 .remove = __devexit_p(snd_smdk_remove), 189 .remove = snd_smdk_remove,
190}; 190};
191 191
192module_platform_driver(snd_smdk_driver); 192module_platform_driver(snd_smdk_driver);
diff --git a/sound/soc/samsung/smdk_wm8994.c b/sound/soc/samsung/smdk_wm8994.c
index 48dd4dd9ee08..b0d0ab8bff5a 100644
--- a/sound/soc/samsung/smdk_wm8994.c
+++ b/sound/soc/samsung/smdk_wm8994.c
@@ -127,7 +127,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
127 .stream_name = "Pri_Dai", 127 .stream_name = "Pri_Dai",
128 .cpu_dai_name = "samsung-i2s.0", 128 .cpu_dai_name = "samsung-i2s.0",
129 .codec_dai_name = "wm8994-aif1", 129 .codec_dai_name = "wm8994-aif1",
130 .platform_name = "samsung-audio", 130 .platform_name = "samsung-i2s.0",
131 .codec_name = "wm8994-codec", 131 .codec_name = "wm8994-codec",
132 .init = smdk_wm8994_init_paiftx, 132 .init = smdk_wm8994_init_paiftx,
133 .ops = &smdk_ops, 133 .ops = &smdk_ops,
@@ -136,7 +136,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
136 .stream_name = "Sec_Dai", 136 .stream_name = "Sec_Dai",
137 .cpu_dai_name = "samsung-i2s.4", 137 .cpu_dai_name = "samsung-i2s.4",
138 .codec_dai_name = "wm8994-aif1", 138 .codec_dai_name = "wm8994-aif1",
139 .platform_name = "samsung-audio", 139 .platform_name = "samsung-i2s.4",
140 .codec_name = "wm8994-codec", 140 .codec_name = "wm8994-codec",
141 .ops = &smdk_ops, 141 .ops = &smdk_ops,
142 }, 142 },
@@ -150,7 +150,7 @@ static struct snd_soc_card smdk = {
150}; 150};
151 151
152 152
153static int __devinit smdk_audio_probe(struct platform_device *pdev) 153static int smdk_audio_probe(struct platform_device *pdev)
154{ 154{
155 int ret; 155 int ret;
156 struct snd_soc_card *card = &smdk; 156 struct snd_soc_card *card = &smdk;
@@ -164,7 +164,7 @@ static int __devinit smdk_audio_probe(struct platform_device *pdev)
164 return ret; 164 return ret;
165} 165}
166 166
167static int __devexit smdk_audio_remove(struct platform_device *pdev) 167static int smdk_audio_remove(struct platform_device *pdev)
168{ 168{
169 struct snd_soc_card *card = platform_get_drvdata(pdev); 169 struct snd_soc_card *card = platform_get_drvdata(pdev);
170 170
@@ -179,7 +179,7 @@ static struct platform_driver smdk_audio_driver = {
179 .owner = THIS_MODULE, 179 .owner = THIS_MODULE,
180 }, 180 },
181 .probe = smdk_audio_probe, 181 .probe = smdk_audio_probe,
182 .remove = __devexit_p(smdk_audio_remove), 182 .remove = smdk_audio_remove,
183}; 183};
184 184
185module_platform_driver(smdk_audio_driver); 185module_platform_driver(smdk_audio_driver);
diff --git a/sound/soc/samsung/smdk_wm8994pcm.c b/sound/soc/samsung/smdk_wm8994pcm.c
index 77ecba935119..3688a32000a2 100644
--- a/sound/soc/samsung/smdk_wm8994pcm.c
+++ b/sound/soc/samsung/smdk_wm8994pcm.c
@@ -116,7 +116,7 @@ static struct snd_soc_dai_link smdk_dai[] = {
116 .stream_name = "Primary PCM", 116 .stream_name = "Primary PCM",
117 .cpu_dai_name = "samsung-pcm.0", 117 .cpu_dai_name = "samsung-pcm.0",
118 .codec_dai_name = "wm8994-aif1", 118 .codec_dai_name = "wm8994-aif1",
119 .platform_name = "samsung-audio", 119 .platform_name = "samsung-pcm.0",
120 .codec_name = "wm8994-codec", 120 .codec_name = "wm8994-codec",
121 .ops = &smdk_wm8994_pcm_ops, 121 .ops = &smdk_wm8994_pcm_ops,
122 }, 122 },
@@ -129,7 +129,7 @@ static struct snd_soc_card smdk_pcm = {
129 .num_links = 1, 129 .num_links = 1,
130}; 130};
131 131
132static int __devinit snd_smdk_probe(struct platform_device *pdev) 132static int snd_smdk_probe(struct platform_device *pdev)
133{ 133{
134 int ret = 0; 134 int ret = 0;
135 135
@@ -143,7 +143,7 @@ static int __devinit snd_smdk_probe(struct platform_device *pdev)
143 return 0; 143 return 0;
144} 144}
145 145
146static int __devexit snd_smdk_remove(struct platform_device *pdev) 146static int snd_smdk_remove(struct platform_device *pdev)
147{ 147{
148 snd_soc_unregister_card(&smdk_pcm); 148 snd_soc_unregister_card(&smdk_pcm);
149 platform_set_drvdata(pdev, NULL); 149 platform_set_drvdata(pdev, NULL);
@@ -156,7 +156,7 @@ static struct platform_driver snd_smdk_driver = {
156 .name = "samsung-smdk-pcm", 156 .name = "samsung-smdk-pcm",
157 }, 157 },
158 .probe = snd_smdk_probe, 158 .probe = snd_smdk_probe,
159 .remove = __devexit_p(snd_smdk_remove), 159 .remove = snd_smdk_remove,
160}; 160};
161 161
162module_platform_driver(snd_smdk_driver); 162module_platform_driver(snd_smdk_driver);
diff --git a/sound/soc/samsung/smdk_wm9713.c b/sound/soc/samsung/smdk_wm9713.c
index 55b2ca7f3290..0d20e4ed27aa 100644
--- a/sound/soc/samsung/smdk_wm9713.c
+++ b/sound/soc/samsung/smdk_wm9713.c
@@ -42,7 +42,7 @@ static struct snd_soc_card smdk;
42static struct snd_soc_dai_link smdk_dai = { 42static struct snd_soc_dai_link smdk_dai = {
43 .name = "AC97", 43 .name = "AC97",
44 .stream_name = "AC97 PCM", 44 .stream_name = "AC97 PCM",
45 .platform_name = "samsung-audio", 45 .platform_name = "samsung-ac97",
46 .cpu_dai_name = "samsung-ac97", 46 .cpu_dai_name = "samsung-ac97",
47 .codec_dai_name = "wm9713-hifi", 47 .codec_dai_name = "wm9713-hifi",
48 .codec_name = "wm9713-codec", 48 .codec_name = "wm9713-codec",
diff --git a/sound/soc/samsung/spdif.c b/sound/soc/samsung/spdif.c
index 5f3b06d36e9c..5008e5bd6ed8 100644
--- a/sound/soc/samsung/spdif.c
+++ b/sound/soc/samsung/spdif.c
@@ -357,7 +357,7 @@ static struct snd_soc_dai_driver samsung_spdif_dai = {
357 .resume = spdif_resume, 357 .resume = spdif_resume,
358}; 358};
359 359
360static __devinit int spdif_probe(struct platform_device *pdev) 360static int spdif_probe(struct platform_device *pdev)
361{ 361{
362 struct s3c_audio_pdata *spdif_pdata; 362 struct s3c_audio_pdata *spdif_pdata;
363 struct resource *mem_res, *dma_res; 363 struct resource *mem_res, *dma_res;
@@ -437,8 +437,15 @@ static __devinit int spdif_probe(struct platform_device *pdev)
437 437
438 spdif->dma_playback = &spdif_stereo_out; 438 spdif->dma_playback = &spdif_stereo_out;
439 439
440 return 0; 440 ret = asoc_dma_platform_register(&pdev->dev);
441 if (ret) {
442 dev_err(&pdev->dev, "failed to register DMA: %d\n", ret);
443 goto err5;
444 }
441 445
446 return 0;
447err5:
448 snd_soc_unregister_dai(&pdev->dev);
442err4: 449err4:
443 iounmap(spdif->regs); 450 iounmap(spdif->regs);
444err3: 451err3:
@@ -453,11 +460,12 @@ err0:
453 return ret; 460 return ret;
454} 461}
455 462
456static __devexit int spdif_remove(struct platform_device *pdev) 463static int spdif_remove(struct platform_device *pdev)
457{ 464{
458 struct samsung_spdif_info *spdif = &spdif_info; 465 struct samsung_spdif_info *spdif = &spdif_info;
459 struct resource *mem_res; 466 struct resource *mem_res;
460 467
468 asoc_dma_platform_unregister(&pdev->dev);
461 snd_soc_unregister_dai(&pdev->dev); 469 snd_soc_unregister_dai(&pdev->dev);
462 470
463 iounmap(spdif->regs); 471 iounmap(spdif->regs);
@@ -476,7 +484,7 @@ static __devexit int spdif_remove(struct platform_device *pdev)
476 484
477static struct platform_driver samsung_spdif_driver = { 485static struct platform_driver samsung_spdif_driver = {
478 .probe = spdif_probe, 486 .probe = spdif_probe,
479 .remove = __devexit_p(spdif_remove), 487 .remove = spdif_remove,
480 .driver = { 488 .driver = {
481 .name = "samsung-spdif", 489 .name = "samsung-spdif",
482 .owner = THIS_MODULE, 490 .owner = THIS_MODULE,
diff --git a/sound/soc/samsung/speyside.c b/sound/soc/samsung/speyside.c
index c7e1c28528a4..57df90d6b7c1 100644
--- a/sound/soc/samsung/speyside.c
+++ b/sound/soc/samsung/speyside.c
@@ -198,7 +198,7 @@ static struct snd_soc_dai_link speyside_dai[] = {
198 .stream_name = "CPU-DSP", 198 .stream_name = "CPU-DSP",
199 .cpu_dai_name = "samsung-i2s.0", 199 .cpu_dai_name = "samsung-i2s.0",
200 .codec_dai_name = "wm0010-sdi1", 200 .codec_dai_name = "wm0010-sdi1",
201 .platform_name = "samsung-audio", 201 .platform_name = "samsung-i2s.0",
202 .codec_name = "spi0.0", 202 .codec_name = "spi0.0",
203 .init = speyside_wm0010_init, 203 .init = speyside_wm0010_init,
204 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF 204 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
@@ -320,7 +320,7 @@ static struct snd_soc_card speyside = {
320 .late_probe = speyside_late_probe, 320 .late_probe = speyside_late_probe,
321}; 321};
322 322
323static __devinit int speyside_probe(struct platform_device *pdev) 323static int speyside_probe(struct platform_device *pdev)
324{ 324{
325 struct snd_soc_card *card = &speyside; 325 struct snd_soc_card *card = &speyside;
326 int ret; 326 int ret;
@@ -337,7 +337,7 @@ static __devinit int speyside_probe(struct platform_device *pdev)
337 return 0; 337 return 0;
338} 338}
339 339
340static int __devexit speyside_remove(struct platform_device *pdev) 340static int speyside_remove(struct platform_device *pdev)
341{ 341{
342 struct snd_soc_card *card = platform_get_drvdata(pdev); 342 struct snd_soc_card *card = platform_get_drvdata(pdev);
343 343
@@ -353,7 +353,7 @@ static struct platform_driver speyside_driver = {
353 .pm = &snd_soc_pm_ops, 353 .pm = &snd_soc_pm_ops,
354 }, 354 },
355 .probe = speyside_probe, 355 .probe = speyside_probe,
356 .remove = __devexit_p(speyside_remove), 356 .remove = speyside_remove,
357}; 357};
358 358
359module_platform_driver(speyside_driver); 359module_platform_driver(speyside_driver);
diff --git a/sound/soc/samsung/tobermory.c b/sound/soc/samsung/tobermory.c
index 9199649bf786..f21ff608a819 100644
--- a/sound/soc/samsung/tobermory.c
+++ b/sound/soc/samsung/tobermory.c
@@ -110,7 +110,7 @@ static struct snd_soc_dai_link tobermory_dai[] = {
110 .stream_name = "CPU", 110 .stream_name = "CPU",
111 .cpu_dai_name = "samsung-i2s.0", 111 .cpu_dai_name = "samsung-i2s.0",
112 .codec_dai_name = "wm8962", 112 .codec_dai_name = "wm8962",
113 .platform_name = "samsung-audio", 113 .platform_name = "samsung-i2s.0",
114 .codec_name = "wm8962.1-001a", 114 .codec_name = "wm8962.1-001a",
115 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF 115 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
116 | SND_SOC_DAIFMT_CBM_CFM, 116 | SND_SOC_DAIFMT_CBM_CFM,
@@ -214,7 +214,7 @@ static struct snd_soc_card tobermory = {
214 .late_probe = tobermory_late_probe, 214 .late_probe = tobermory_late_probe,
215}; 215};
216 216
217static __devinit int tobermory_probe(struct platform_device *pdev) 217static int tobermory_probe(struct platform_device *pdev)
218{ 218{
219 struct snd_soc_card *card = &tobermory; 219 struct snd_soc_card *card = &tobermory;
220 int ret; 220 int ret;
@@ -231,7 +231,7 @@ static __devinit int tobermory_probe(struct platform_device *pdev)
231 return 0; 231 return 0;
232} 232}
233 233
234static int __devexit tobermory_remove(struct platform_device *pdev) 234static int tobermory_remove(struct platform_device *pdev)
235{ 235{
236 struct snd_soc_card *card = platform_get_drvdata(pdev); 236 struct snd_soc_card *card = platform_get_drvdata(pdev);
237 237
@@ -247,7 +247,7 @@ static struct platform_driver tobermory_driver = {
247 .pm = &snd_soc_pm_ops, 247 .pm = &snd_soc_pm_ops,
248 }, 248 },
249 .probe = tobermory_probe, 249 .probe = tobermory_probe,
250 .remove = __devexit_p(tobermory_remove), 250 .remove = tobermory_remove,
251}; 251};
252 252
253module_platform_driver(tobermory_driver); 253module_platform_driver(tobermory_driver);