Commit 6b849bcf authored by Mark Brown's avatar Mark Brown

ASoC: Convert PXA AC97 driver to probe with the platform device

This will break any boards that don't register the AC97 controller
device due to using ASoC.
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent a381934e
...@@ -106,13 +106,13 @@ static int pxa2xx_ac97_resume(struct snd_soc_dai *dai) ...@@ -106,13 +106,13 @@ static int pxa2xx_ac97_resume(struct snd_soc_dai *dai)
static int pxa2xx_ac97_probe(struct platform_device *pdev, static int pxa2xx_ac97_probe(struct platform_device *pdev,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
return pxa2xx_ac97_hw_probe(pdev); return pxa2xx_ac97_hw_probe(to_platform_device(dai->dev));
} }
static void pxa2xx_ac97_remove(struct platform_device *pdev, static void pxa2xx_ac97_remove(struct platform_device *pdev,
struct snd_soc_dai *dai) struct snd_soc_dai *dai)
{ {
pxa2xx_ac97_hw_remove(pdev); pxa2xx_ac97_hw_remove(to_platform_device(dai->dev));
} }
static int pxa2xx_ac97_hw_params(struct snd_pcm_substream *substream, static int pxa2xx_ac97_hw_params(struct snd_pcm_substream *substream,
...@@ -229,15 +229,45 @@ struct snd_soc_dai pxa_ac97_dai[] = { ...@@ -229,15 +229,45 @@ struct snd_soc_dai pxa_ac97_dai[] = {
EXPORT_SYMBOL_GPL(pxa_ac97_dai); EXPORT_SYMBOL_GPL(pxa_ac97_dai);
EXPORT_SYMBOL_GPL(soc_ac97_ops); EXPORT_SYMBOL_GPL(soc_ac97_ops);
static int __init pxa_ac97_init(void) static int __devinit pxa2xx_ac97_dev_probe(struct platform_device *pdev)
{ {
int i;
for (i = 0; i < ARRAY_SIZE(pxa_ac97_dai); i++)
pxa_ac97_dai[i].dev = &pdev->dev;
/* Punt most of the init to the SoC probe; we may need the machine
* driver to do interesting things with the clocking to get us up
* and running.
*/
return snd_soc_register_dais(pxa_ac97_dai, ARRAY_SIZE(pxa_ac97_dai)); return snd_soc_register_dais(pxa_ac97_dai, ARRAY_SIZE(pxa_ac97_dai));
} }
static int __devexit pxa2xx_ac97_dev_remove(struct platform_device *pdev)
{
snd_soc_unregister_dais(pxa_ac97_dai, ARRAY_SIZE(pxa_ac97_dai));
return 0;
}
static struct platform_driver pxa2xx_ac97_driver = {
.probe = pxa2xx_ac97_dev_probe,
.remove = __devexit_p(pxa2xx_ac97_dev_remove),
.driver = {
.name = "pxa2xx-ac97",
.owner = THIS_MODULE,
},
};
static int __init pxa_ac97_init(void)
{
return platform_driver_register(&pxa2xx_ac97_driver);
}
module_init(pxa_ac97_init); module_init(pxa_ac97_init);
static void __exit pxa_ac97_exit(void) static void __exit pxa_ac97_exit(void)
{ {
snd_soc_unregister_dais(pxa_ac97_dai, ARRAY_SIZE(pxa_ac97_dai)); platform_driver_unregister(&pxa2xx_ac97_driver);
} }
module_exit(pxa_ac97_exit); module_exit(pxa_ac97_exit);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment