]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - sound/soc/sh/hac.c
Merge branch 'master' into csb1725
[mv-sheeva.git] / sound / soc / sh / hac.c
index 41db75af3c69d3b64f2420e07acfb2ca3473fa45..c87e3ff28a0a02957bbd37c2de21d96b661e569e 100644 (file)
@@ -239,8 +239,7 @@ static int hac_hw_params(struct snd_pcm_substream *substream,
                         struct snd_pcm_hw_params *params,
                         struct snd_soc_dai *dai)
 {
-       struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct hac_priv *hac = &hac_cpu_data[rtd->dai->cpu_dai->id];
+       struct hac_priv *hac = &hac_cpu_data[dai->id];
        int d = substream->stream == SNDRV_PCM_STREAM_PLAYBACK ? 0 : 1;
 
        switch (params->msbits) {
@@ -271,10 +270,9 @@ static struct snd_soc_dai_ops hac_dai_ops = {
        .hw_params      = hac_hw_params,
 };
 
-struct snd_soc_dai sh4_hac_dai[] = {
+static struct snd_soc_dai_driver sh4_hac_dai[] = {
 {
-       .name                   = "HAC0",
-       .id                     = 0,
+       .name                   = "hac-dai.0",
        .ac97_control           = 1,
        .playback = {
                .rates          = AC97_RATES,
@@ -292,8 +290,7 @@ struct snd_soc_dai sh4_hac_dai[] = {
 },
 #ifdef CONFIG_CPU_SUBTYPE_SH7760
 {
-       .name                   = "HAC1",
-       .ac97_control           = 1,
+       .name                   = "hac-dai.1",
        .id                     = 1,
        .playback = {
                .rates          = AC97_RATES,
@@ -312,19 +309,40 @@ struct snd_soc_dai sh4_hac_dai[] = {
 },
 #endif
 };
-EXPORT_SYMBOL_GPL(sh4_hac_dai);
 
-static int __init sh4_hac_init(void)
+static int __devinit hac_soc_platform_probe(struct platform_device *pdev)
+{
+       return snd_soc_register_dais(&pdev->dev, sh4_hac_dai,
+                       ARRAY_SIZE(sh4_hac_dai));
+}
+
+static int __devexit hac_soc_platform_remove(struct platform_device *pdev)
+{
+       snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(sh4_hac_dai));
+       return 0;
+}
+
+static struct platform_driver hac_pcm_driver = {
+       .driver = {
+                       .name = "hac-pcm-audio",
+                       .owner = THIS_MODULE,
+       },
+
+       .probe = hac_soc_platform_probe,
+       .remove = __devexit_p(hac_soc_platform_remove),
+};
+
+static int __init sh4_hac_pcm_init(void)
 {
-       return snd_soc_register_dais(sh4_hac_dai, ARRAY_SIZE(sh4_hac_dai));
+       return platform_driver_register(&hac_pcm_driver);
 }
-module_init(sh4_hac_init);
+module_init(sh4_hac_pcm_init);
 
-static void __exit sh4_hac_exit(void)
+static void __exit sh4_hac_pcm_exit(void)
 {
-       snd_soc_unregister_dais(sh4_hac_dai, ARRAY_SIZE(sh4_hac_dai));
+       platform_driver_unregister(&hac_pcm_driver);
 }
-module_exit(sh4_hac_exit);
+module_exit(sh4_hac_pcm_exit);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("SuperH onchip HAC (AC97) audio driver");