diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2013-01-17 16:15:55 -0500 |
commit | 8dea78da5cee153b8af9c07a2745f6c55057fe12 (patch) | |
tree | a8f4d49d63b1ecc92f2fddceba0655b2472c5bd9 /sound/soc/s6000 | |
parent | 406089d01562f1e2bf9f089fd7637009ebaad589 (diff) |
Patched in Tegra support.
Diffstat (limited to 'sound/soc/s6000')
-rw-r--r-- | sound/soc/s6000/s6000-i2s.c | 20 | ||||
-rw-r--r-- | sound/soc/s6000/s6000-pcm.c | 24 | ||||
-rw-r--r-- | sound/soc/s6000/s6105-ipcam.c | 1 |
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 | ||
412 | static const struct snd_soc_dai_ops s6000_i2s_dai_ops = { | 412 | static 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 | ||
439 | static int s6000_i2s_probe(struct platform_device *pdev) | 439 | static 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 | ||
569 | static void s6000_i2s_remove(struct platform_device *pdev) | 569 | static 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 | ||
598 | static struct platform_driver s6000_i2s_driver = { | 598 | static 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 | ||
607 | module_platform_driver(s6000_i2s_driver); | 607 | static int __init s6000_i2s_init(void) |
608 | { | ||
609 | return platform_driver_register(&s6000_i2s_driver); | ||
610 | } | ||
611 | module_init(s6000_i2s_init); | ||
612 | |||
613 | static void __exit s6000_i2s_exit(void) | ||
614 | { | ||
615 | platform_driver_unregister(&s6000_i2s_driver); | ||
616 | } | ||
617 | module_exit(s6000_i2s_exit); | ||
608 | 618 | ||
609 | MODULE_AUTHOR("Daniel Gloeckner"); | 619 | MODULE_AUTHOR("Daniel Gloeckner"); |
610 | MODULE_DESCRIPTION("Stretch s6000 family I2S SoC Interface"); | 620 | MODULE_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); | |||
447 | static int s6000_pcm_new(struct snd_soc_pcm_runtime *runtime) | 446 | static 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 | ||
503 | static int s6000_soc_platform_probe(struct platform_device *pdev) | 503 | static 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 | ||
508 | static int s6000_soc_platform_remove(struct platform_device *pdev) | 508 | static 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 | ||
524 | module_platform_driver(s6000_pcm_driver); | 524 | static int __init snd_s6000_pcm_init(void) |
525 | { | ||
526 | return platform_driver_register(&s6000_pcm_driver); | ||
527 | } | ||
528 | module_init(snd_s6000_pcm_init); | ||
529 | |||
530 | static void __exit snd_s6000_pcm_exit(void) | ||
531 | { | ||
532 | platform_driver_unregister(&s6000_pcm_driver); | ||
533 | } | ||
534 | module_exit(snd_s6000_pcm_exit); | ||
525 | 535 | ||
526 | MODULE_AUTHOR("Daniel Gloeckner"); | 536 | MODULE_AUTHOR("Daniel Gloeckner"); |
527 | MODULE_DESCRIPTION("Stretch s6000 family PCM DMA module"); | 537 | MODULE_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 */ |
188 | static struct snd_soc_card snd_soc_card_s6105 = { | 188 | static 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 | }; |