diff options
Diffstat (limited to 'sound/soc/samsung/ac97.c')
-rw-r--r-- | sound/soc/samsung/ac97.c | 16 |
1 files changed, 12 insertions, 4 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 | ||
373 | static __devinit int s3c_ac97_probe(struct platform_device *pdev) | 373 | static 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; | ||
472 | err6: | ||
473 | snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(s3c_ac97_dai)); | ||
467 | err5: | 474 | err5: |
468 | free_irq(irq_res->start, NULL); | 475 | free_irq(irq_res->start, NULL); |
469 | err4: | 476 | err4: |
@@ -478,10 +485,11 @@ err1: | |||
478 | return ret; | 485 | return ret; |
479 | } | 486 | } |
480 | 487 | ||
481 | static __devexit int s3c_ac97_remove(struct platform_device *pdev) | 488 | static 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 | ||
503 | static struct platform_driver s3c_ac97_driver = { | 511 | static 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, |