aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/s6000
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
committerJonathan Herman <hermanjl@cs.unc.edu>2013-01-17 16:15:55 -0500
commit8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch)
treea8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /sound/soc/s6000
parent406089d01562f1e2bf9f089fd7637009ebaad589 (diff)
Patched in Tegra support.
Diffstat (limited to 'sound/soc/s6000')
-rw-r--r--sound/soc/s6000/s6000-i2s.c20
-rw-r--r--sound/soc/s6000/s6000-pcm.c24
-rw-r--r--sound/soc/s6000/s6105-ipcam.c1
3 files changed, 32 insertions, 13 deletions
diff --git a/sound/soc/s6000/s6000-i2s.c b/sound/soc/s6000/s6000-i2s.c
index fee4d477a49..3052f64b240 100644
--- a/sound/soc/s6000/s6000-i2s.c
+++ b/sound/soc/s6000/s6000-i2s.c
@@ -409,7 +409,7 @@ static int s6000_i2s_dai_probe(struct snd_soc_dai *dai)
409 SNDRV_PCM_RATE_8000_192000) 409 SNDRV_PCM_RATE_8000_192000)
410#define S6000_I2S_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE) 410#define S6000_I2S_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE)
411 411
412static const struct snd_soc_dai_ops s6000_i2s_dai_ops = { 412static struct snd_soc_dai_ops s6000_i2s_dai_ops = {
413 .set_fmt = s6000_i2s_set_dai_fmt, 413 .set_fmt = s6000_i2s_set_dai_fmt,
414 .set_clkdiv = s6000_i2s_set_clkdiv, 414 .set_clkdiv = s6000_i2s_set_clkdiv,
415 .hw_params = s6000_i2s_hw_params, 415 .hw_params = s6000_i2s_hw_params,
@@ -436,7 +436,7 @@ static struct snd_soc_dai_driver s6000_i2s_dai = {
436 .ops = &s6000_i2s_dai_ops, 436 .ops = &s6000_i2s_dai_ops,
437}; 437};
438 438
439static int s6000_i2s_probe(struct platform_device *pdev) 439static int __devinit s6000_i2s_probe(struct platform_device *pdev)
440{ 440{
441 struct s6000_i2s_dev *dev; 441 struct s6000_i2s_dev *dev;
442 struct resource *scbmem, *sifmem, *region, *dma1, *dma2; 442 struct resource *scbmem, *sifmem, *region, *dma1, *dma2;
@@ -566,7 +566,7 @@ err_release_none:
566 return ret; 566 return ret;
567} 567}
568 568
569static void s6000_i2s_remove(struct platform_device *pdev) 569static void __devexit s6000_i2s_remove(struct platform_device *pdev)
570{ 570{
571 struct s6000_i2s_dev *dev = dev_get_drvdata(&pdev->dev); 571 struct s6000_i2s_dev *dev = dev_get_drvdata(&pdev->dev);
572 struct resource *region; 572 struct resource *region;
@@ -597,14 +597,24 @@ static void s6000_i2s_remove(struct platform_device *pdev)
597 597
598static struct platform_driver s6000_i2s_driver = { 598static struct platform_driver s6000_i2s_driver = {
599 .probe = s6000_i2s_probe, 599 .probe = s6000_i2s_probe,
600 .remove = s6000_i2s_remove, 600 .remove = __devexit_p(s6000_i2s_remove),
601 .driver = { 601 .driver = {
602 .name = "s6000-i2s", 602 .name = "s6000-i2s",
603 .owner = THIS_MODULE, 603 .owner = THIS_MODULE,
604 }, 604 },
605}; 605};
606 606
607module_platform_driver(s6000_i2s_driver); 607static int __init s6000_i2s_init(void)
608{
609 return platform_driver_register(&s6000_i2s_driver);
610}
611module_init(s6000_i2s_init);
612
613static void __exit s6000_i2s_exit(void)
614{
615 platform_driver_unregister(&s6000_i2s_driver);
616}
617module_exit(s6000_i2s_exit);
608 618
609MODULE_AUTHOR("Daniel Gloeckner"); 619MODULE_AUTHOR("Daniel Gloeckner");
610MODULE_DESCRIPTION("Stretch s6000 family I2S SoC Interface"); 620MODULE_DESCRIPTION("Stretch s6000 family I2S SoC Interface");
diff --git a/sound/soc/s6000/s6000-pcm.c b/sound/soc/s6000/s6000-pcm.c
index 1358c7de252..80c85fd64e1 100644
--- a/sound/soc/s6000/s6000-pcm.c
+++ b/sound/soc/s6000/s6000-pcm.c
@@ -435,8 +435,7 @@ static void s6000_pcm_free(struct snd_pcm *pcm)
435{ 435{
436 struct snd_soc_pcm_runtime *runtime = pcm->private_data; 436 struct snd_soc_pcm_runtime *runtime = pcm->private_data;
437 struct s6000_pcm_dma_params *params = 437 struct s6000_pcm_dma_params *params =
438 snd_soc_dai_get_dma_data(runtime->cpu_dai, 438 snd_soc_dai_get_dma_data(runtime->cpu_dai, pcm->streams[0].substream);
439 pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream);
440 439
441 free_irq(params->irq, pcm); 440 free_irq(params->irq, pcm);
442 snd_pcm_lib_preallocate_free_for_all(pcm); 441 snd_pcm_lib_preallocate_free_for_all(pcm);
@@ -447,12 +446,13 @@ static u64 s6000_pcm_dmamask = DMA_BIT_MASK(32);
447static int s6000_pcm_new(struct snd_soc_pcm_runtime *runtime) 446static int s6000_pcm_new(struct snd_soc_pcm_runtime *runtime)
448{ 447{
449 struct snd_card *card = runtime->card->snd_card; 448 struct snd_card *card = runtime->card->snd_card;
449 struct snd_soc_dai *dai = runtime->cpu_dai;
450 struct snd_pcm *pcm = runtime->pcm; 450 struct snd_pcm *pcm = runtime->pcm;
451 struct s6000_pcm_dma_params *params; 451 struct s6000_pcm_dma_params *params;
452 int res; 452 int res;
453 453
454 params = snd_soc_dai_get_dma_data(runtime->cpu_dai, 454 params = snd_soc_dai_get_dma_data(runtime->cpu_dai,
455 pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream); 455 pcm->streams[0].substream);
456 456
457 if (!card->dev->dma_mask) 457 if (!card->dev->dma_mask)
458 card->dev->dma_mask = &s6000_pcm_dmamask; 458 card->dev->dma_mask = &s6000_pcm_dmamask;
@@ -500,12 +500,12 @@ static struct snd_soc_platform_driver s6000_soc_platform = {
500 .pcm_free = s6000_pcm_free, 500 .pcm_free = s6000_pcm_free,
501}; 501};
502 502
503static int s6000_soc_platform_probe(struct platform_device *pdev) 503static int __devinit s6000_soc_platform_probe(struct platform_device *pdev)
504{ 504{
505 return snd_soc_register_platform(&pdev->dev, &s6000_soc_platform); 505 return snd_soc_register_platform(&pdev->dev, &s6000_soc_platform);
506} 506}
507 507
508static int s6000_soc_platform_remove(struct platform_device *pdev) 508static int __devexit s6000_soc_platform_remove(struct platform_device *pdev)
509{ 509{
510 snd_soc_unregister_platform(&pdev->dev); 510 snd_soc_unregister_platform(&pdev->dev);
511 return 0; 511 return 0;
@@ -518,10 +518,20 @@ static struct platform_driver s6000_pcm_driver = {
518 }, 518 },
519 519
520 .probe = s6000_soc_platform_probe, 520 .probe = s6000_soc_platform_probe,
521 .remove = s6000_soc_platform_remove, 521 .remove = __devexit_p(s6000_soc_platform_remove),
522}; 522};
523 523
524module_platform_driver(s6000_pcm_driver); 524static int __init snd_s6000_pcm_init(void)
525{
526 return platform_driver_register(&s6000_pcm_driver);
527}
528module_init(snd_s6000_pcm_init);
529
530static void __exit snd_s6000_pcm_exit(void)
531{
532 platform_driver_unregister(&s6000_pcm_driver);
533}
534module_exit(snd_s6000_pcm_exit);
525 535
526MODULE_AUTHOR("Daniel Gloeckner"); 536MODULE_AUTHOR("Daniel Gloeckner");
527MODULE_DESCRIPTION("Stretch s6000 family PCM DMA module"); 537MODULE_DESCRIPTION("Stretch s6000 family PCM DMA module");
diff --git a/sound/soc/s6000/s6105-ipcam.c b/sound/soc/s6000/s6105-ipcam.c
index 58cfb1eb7dd..5890e431852 100644
--- a/sound/soc/s6000/s6105-ipcam.c
+++ b/sound/soc/s6000/s6105-ipcam.c
@@ -187,7 +187,6 @@ static struct snd_soc_dai_link s6105_dai = {
187/* s6105 audio machine driver */ 187/* s6105 audio machine driver */
188static struct snd_soc_card snd_soc_card_s6105 = { 188static struct snd_soc_card snd_soc_card_s6105 = {
189 .name = "Stretch IP Camera", 189 .name = "Stretch IP Camera",
190 .owner = THIS_MODULE,
191 .dai_link = &s6105_dai, 190 .dai_link = &s6105_dai,
192 .num_links = 1, 191 .num_links = 1,
193}; 192};