diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-08-04 15:27:03 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-08-05 13:06:30 -0400 |
commit | 64ddf1f89cd7a483e1204320395023774234b49a (patch) | |
tree | 067139342472af7201368f0f758cb65f4fd741db /sound/soc/kirkwood/kirkwood-i2s.c | |
parent | db43b16fa0e913582b63c971848e08151d50d952 (diff) |
ASoC: kirkwood: combine kirkwood-i2s and kirkwood-dma drivers
These really should be a single driver because they're fully integrated
in hardware. Make them so.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/kirkwood/kirkwood-i2s.c')
-rw-r--r-- | sound/soc/kirkwood/kirkwood-i2s.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c index ad1c789637b2..e5f3f7a9ea26 100644 --- a/sound/soc/kirkwood/kirkwood-i2s.c +++ b/sound/soc/kirkwood/kirkwood-i2s.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <linux/platform_data/asoc-kirkwood.h> | 24 | #include <linux/platform_data/asoc-kirkwood.h> |
25 | #include "kirkwood.h" | 25 | #include "kirkwood.h" |
26 | 26 | ||
27 | #define DRV_NAME "kirkwood-i2s" | 27 | #define DRV_NAME "mvebu-audio" |
28 | 28 | ||
29 | #define KIRKWOOD_I2S_FORMATS \ | 29 | #define KIRKWOOD_I2S_FORMATS \ |
30 | (SNDRV_PCM_FMTBIT_S16_LE | \ | 30 | (SNDRV_PCM_FMTBIT_S16_LE | \ |
@@ -517,10 +517,20 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev) | |||
517 | 517 | ||
518 | err = snd_soc_register_component(&pdev->dev, &kirkwood_i2s_component, | 518 | err = snd_soc_register_component(&pdev->dev, &kirkwood_i2s_component, |
519 | soc_dai, 1); | 519 | soc_dai, 1); |
520 | if (!err) | 520 | if (err) { |
521 | return 0; | 521 | dev_err(&pdev->dev, "snd_soc_register_component failed\n"); |
522 | dev_err(&pdev->dev, "snd_soc_register_component failed\n"); | 522 | goto err_component; |
523 | } | ||
523 | 524 | ||
525 | err = snd_soc_register_platform(&pdev->dev, &kirkwood_soc_platform); | ||
526 | if (err) { | ||
527 | dev_err(&pdev->dev, "snd_soc_register_platform failed\n"); | ||
528 | goto err_platform; | ||
529 | } | ||
530 | return 0; | ||
531 | err_platform: | ||
532 | snd_soc_unregister_component(&pdev->dev); | ||
533 | err_component: | ||
524 | if (!IS_ERR(priv->extclk)) | 534 | if (!IS_ERR(priv->extclk)) |
525 | clk_disable_unprepare(priv->extclk); | 535 | clk_disable_unprepare(priv->extclk); |
526 | clk_disable_unprepare(priv->clk); | 536 | clk_disable_unprepare(priv->clk); |
@@ -532,6 +542,7 @@ static int kirkwood_i2s_dev_remove(struct platform_device *pdev) | |||
532 | { | 542 | { |
533 | struct kirkwood_dma_data *priv = dev_get_drvdata(&pdev->dev); | 543 | struct kirkwood_dma_data *priv = dev_get_drvdata(&pdev->dev); |
534 | 544 | ||
545 | snd_soc_unregister_platform(&pdev->dev); | ||
535 | snd_soc_unregister_component(&pdev->dev); | 546 | snd_soc_unregister_component(&pdev->dev); |
536 | 547 | ||
537 | if (!IS_ERR(priv->extclk)) | 548 | if (!IS_ERR(priv->extclk)) |
@@ -556,4 +567,4 @@ module_platform_driver(kirkwood_i2s_driver); | |||
556 | MODULE_AUTHOR("Arnaud Patard, <arnaud.patard@rtp-net.org>"); | 567 | MODULE_AUTHOR("Arnaud Patard, <arnaud.patard@rtp-net.org>"); |
557 | MODULE_DESCRIPTION("Kirkwood I2S SoC Interface"); | 568 | MODULE_DESCRIPTION("Kirkwood I2S SoC Interface"); |
558 | MODULE_LICENSE("GPL"); | 569 | MODULE_LICENSE("GPL"); |
559 | MODULE_ALIAS("platform:kirkwood-i2s"); | 570 | MODULE_ALIAS("platform:mvebu-audio"); |