forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 <[email protected]> Signed-off-by: Mark Brown <[email protected]>
- Loading branch information
Showing
9 changed files
with
35 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -334,36 +334,8 @@ static void kirkwood_dma_free_dma_buffers(struct snd_pcm *pcm) | |
} | ||
} | ||
|
||
static struct snd_soc_platform_driver kirkwood_soc_platform = { | ||
struct snd_soc_platform_driver kirkwood_soc_platform = { | ||
.ops = &kirkwood_dma_ops, | ||
.pcm_new = kirkwood_dma_new, | ||
.pcm_free = kirkwood_dma_free_dma_buffers, | ||
}; | ||
|
||
static int kirkwood_soc_platform_probe(struct platform_device *pdev) | ||
{ | ||
return snd_soc_register_platform(&pdev->dev, &kirkwood_soc_platform); | ||
} | ||
|
||
static int kirkwood_soc_platform_remove(struct platform_device *pdev) | ||
{ | ||
snd_soc_unregister_platform(&pdev->dev); | ||
return 0; | ||
} | ||
|
||
static struct platform_driver kirkwood_pcm_driver = { | ||
.driver = { | ||
.name = "kirkwood-pcm-audio", | ||
.owner = THIS_MODULE, | ||
}, | ||
|
||
.probe = kirkwood_soc_platform_probe, | ||
.remove = kirkwood_soc_platform_remove, | ||
}; | ||
|
||
module_platform_driver(kirkwood_pcm_driver); | ||
|
||
MODULE_AUTHOR("Arnaud Patard <[email protected]>"); | ||
MODULE_DESCRIPTION("Marvell Kirkwood Audio DMA module"); | ||
MODULE_LICENSE("GPL"); | ||
MODULE_ALIAS("platform:kirkwood-pcm-audio"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,7 +24,7 @@ | |
#include <linux/platform_data/asoc-kirkwood.h> | ||
#include "kirkwood.h" | ||
|
||
#define DRV_NAME "kirkwood-i2s" | ||
#define DRV_NAME "mvebu-audio" | ||
|
||
#define KIRKWOOD_I2S_FORMATS \ | ||
(SNDRV_PCM_FMTBIT_S16_LE | \ | ||
|
@@ -517,10 +517,20 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev) | |
|
||
err = snd_soc_register_component(&pdev->dev, &kirkwood_i2s_component, | ||
soc_dai, 1); | ||
if (!err) | ||
return 0; | ||
dev_err(&pdev->dev, "snd_soc_register_component failed\n"); | ||
if (err) { | ||
dev_err(&pdev->dev, "snd_soc_register_component failed\n"); | ||
goto err_component; | ||
} | ||
|
||
err = snd_soc_register_platform(&pdev->dev, &kirkwood_soc_platform); | ||
if (err) { | ||
dev_err(&pdev->dev, "snd_soc_register_platform failed\n"); | ||
goto err_platform; | ||
} | ||
return 0; | ||
err_platform: | ||
snd_soc_unregister_component(&pdev->dev); | ||
err_component: | ||
if (!IS_ERR(priv->extclk)) | ||
clk_disable_unprepare(priv->extclk); | ||
clk_disable_unprepare(priv->clk); | ||
|
@@ -532,6 +542,7 @@ static int kirkwood_i2s_dev_remove(struct platform_device *pdev) | |
{ | ||
struct kirkwood_dma_data *priv = dev_get_drvdata(&pdev->dev); | ||
|
||
snd_soc_unregister_platform(&pdev->dev); | ||
snd_soc_unregister_component(&pdev->dev); | ||
|
||
if (!IS_ERR(priv->extclk)) | ||
|
@@ -556,4 +567,4 @@ module_platform_driver(kirkwood_i2s_driver); | |
MODULE_AUTHOR("Arnaud Patard, <[email protected]>"); | ||
MODULE_DESCRIPTION("Kirkwood I2S SoC Interface"); | ||
MODULE_LICENSE("GPL"); | ||
MODULE_ALIAS("platform:kirkwood-i2s"); | ||
MODULE_ALIAS("platform:mvebu-audio"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -138,4 +138,6 @@ struct kirkwood_dma_data { | |
int burst; | ||
}; | ||
|
||
extern struct snd_soc_platform_driver kirkwood_soc_platform; | ||
|
||
#endif |