]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge branch 'topic/stac9766' of git://git.kernel.org/pub/scm/linux/kernel/git/brooni...
authorMark Brown <broonie@linaro.org>
Thu, 27 Jun 2013 08:47:04 +0000 (09:47 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 27 Jun 2013 08:47:04 +0000 (09:47 +0100)
sound/soc/au1x/ac97c.c
sound/soc/au1x/psc-ac97.c
sound/soc/blackfin/bf5xx-ac97.c
sound/soc/cirrus/ep93xx-ac97.c
sound/soc/codecs/wm9705.c
sound/soc/nuc900/nuc900-ac97.c
sound/soc/samsung/ac97.c
sound/soc/tegra/tegra20_ac97.c
sound/soc/txx9/txx9aclc-ac97.c

index 44b8dcecf57179c16dbb695da2e0cad1ebfa8937..a51dabe20cbbbc3665ffed06cda2f4a464b10b62 100644 (file)
@@ -338,19 +338,7 @@ static struct platform_driver au1xac97c_driver = {
        .remove         = au1xac97c_drvremove,
 };
 
-static int __init au1xac97c_load(void)
-{
-       ac97c_workdata = NULL;
-       return platform_driver_register(&au1xac97c_driver);
-}
-
-static void __exit au1xac97c_unload(void)
-{
-       platform_driver_unregister(&au1xac97c_driver);
-}
-
-module_init(au1xac97c_load);
-module_exit(au1xac97c_unload);
+module_platform_driver(&au1xac97c_driver);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Au1000/1500/1100 AC97C ASoC driver");
index 8f1862aa733311b35552079ace7a8fa314b4c3b6..a97ba1367b690540c488885bee609254e70e7bbc 100644 (file)
@@ -383,15 +383,9 @@ static int au1xpsc_ac97_drvprobe(struct platform_device *pdev)
        if (!iores)
                return -ENODEV;
 
-       if (!devm_request_mem_region(&pdev->dev, iores->start,
-                                    resource_size(iores),
-                                    pdev->name))
-               return -EBUSY;
-
-       wd->mmio = devm_ioremap(&pdev->dev, iores->start,
-                               resource_size(iores));
-       if (!wd->mmio)
-               return -EBUSY;
+       wd->mmio = devm_ioremap_resource(&pdev->dev, iores);
+       if (IS_ERR(wd->mmio))
+               return PTR_ERR(wd->mmio);
 
        dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0);
        if (!dmares)
@@ -503,19 +497,7 @@ static struct platform_driver au1xpsc_ac97_driver = {
        .remove         = au1xpsc_ac97_drvremove,
 };
 
-static int __init au1xpsc_ac97_load(void)
-{
-       au1xpsc_ac97_workdata = NULL;
-       return platform_driver_register(&au1xpsc_ac97_driver);
-}
-
-static void __exit au1xpsc_ac97_unload(void)
-{
-       platform_driver_unregister(&au1xpsc_ac97_driver);
-}
-
-module_init(au1xpsc_ac97_load);
-module_exit(au1xpsc_ac97_unload);
+module_platform_driver(au1xpsc_ac97_driver);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Au12x0/Au1550 PSC AC97 ALSA ASoC audio driver");
index 490217325975ab47f9c393fc66d01365e16410b1..024e2dbe6c7f675764728383053a0828e744c48b 100644 (file)
@@ -293,13 +293,14 @@ static int asoc_bfin_ac97_probe(struct platform_device *pdev)
 
 #ifdef CONFIG_SND_BF5XX_HAVE_COLD_RESET
        /* Request PB3 as reset pin */
-       if (gpio_request(CONFIG_SND_BF5XX_RESET_GPIO_NUM, "SND_AD198x RESET")) {
-               pr_err("Failed to request GPIO_%d for reset\n",
-                               CONFIG_SND_BF5XX_RESET_GPIO_NUM);
-               ret =  -1;
+       ret = devm_gpio_request_one(&pdev->dev,
+                                   CONFIG_SND_BF5XX_RESET_GPIO_NUM,
+                                   GPIOF_OUT_INIT_HIGH, "SND_AD198x RESET") {
+               dev_err(&pdev->dev,
+                       "Failed to request GPIO_%d for reset: %d\n",
+                       CONFIG_SND_BF5XX_RESET_GPIO_NUM, ret);
                goto gpio_err;
        }
-       gpio_direction_output(CONFIG_SND_BF5XX_RESET_GPIO_NUM, 1);
 #endif
 
        sport_handle = sport_init(pdev, 2, sizeof(struct ac97_frame),
@@ -349,10 +350,6 @@ static int asoc_bfin_ac97_probe(struct platform_device *pdev)
 sport_config_err:
        sport_done(sport_handle);
 sport_err:
-#ifdef CONFIG_SND_BF5XX_HAVE_COLD_RESET
-       gpio_free(CONFIG_SND_BF5XX_RESET_GPIO_NUM);
-gpio_err:
-#endif
 
        return ret;
 }
@@ -363,9 +360,6 @@ static int asoc_bfin_ac97_remove(struct platform_device *pdev)
 
        snd_soc_unregister_component(&pdev->dev);
        sport_done(sport_handle);
-#ifdef CONFIG_SND_BF5XX_HAVE_COLD_RESET
-       gpio_free(CONFIG_SND_BF5XX_RESET_GPIO_NUM);
-#endif
 
        return 0;
 }
index 7798fbd5e81dac21ca7c5c6bb54836786510bd79..d49e0556e381241ba181ca9f4b76161b2d3ec245 100644 (file)
@@ -405,7 +405,6 @@ static int ep93xx_ac97_probe(struct platform_device *pdev)
 fail:
        platform_set_drvdata(pdev, NULL);
        ep93xx_ac97_info = NULL;
-       dev_set_drvdata(&pdev->dev, NULL);
        return ret;
 }
 
@@ -420,7 +419,6 @@ static int ep93xx_ac97_remove(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, NULL);
        ep93xx_ac97_info = NULL;
-       dev_set_drvdata(&pdev->dev, NULL);
 
        return 0;
 }
index 05b1f346695bce8d10c7e406ed6413a744117102..a5fc61dbcd47e428addcec8cc009d0411cd14436 100644 (file)
@@ -337,8 +337,6 @@ static int wm9705_soc_probe(struct snd_soc_codec *codec)
 {
        int ret = 0;
 
-       printk(KERN_INFO "WM9705 SoC Audio Codec\n");
-
        ret = snd_soc_new_ac97_codec(codec, &soc_ac97_ops, 0);
        if (ret < 0) {
                printk(KERN_ERR "wm9705: failed to register AC97 codec\n");
index fe3285ceaf5bdc4b8903260aed762ab78b02a890..8dea4c1fd997b668cb36346331e03a8e8cbf6878 100644 (file)
@@ -326,41 +326,32 @@ static int nuc900_ac97_drvprobe(struct platform_device *pdev)
        if (nuc900_ac97_data)
                return -EBUSY;
 
-       nuc900_audio = kzalloc(sizeof(struct nuc900_audio), GFP_KERNEL);
+       nuc900_audio = devm_kzalloc(&pdev->dev, sizeof(struct nuc900_audio),
+                                   GFP_KERNEL);
        if (!nuc900_audio)
                return -ENOMEM;
 
        spin_lock_init(&nuc900_audio->lock);
 
        nuc900_audio->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!nuc900_audio->res) {
-               ret = -ENODEV;
-               goto out0;
-       }
+       if (!nuc900_audio->res)
+               return ret;
 
-       if (!request_mem_region(nuc900_audio->res->start,
-                       resource_size(nuc900_audio->res), pdev->name)) {
-               ret = -EBUSY;
-               goto out0;
-       }
-
-       nuc900_audio->mmio = ioremap(nuc900_audio->res->start,
-                                       resource_size(nuc900_audio->res));
-       if (!nuc900_audio->mmio) {
-               ret = -ENOMEM;
-               goto out1;
-       }
+       nuc900_audio->mmio = devm_ioremap_resource(&pdev->dev,
+                                                  nuc900_audio->res);
+       if (IS_ERR(nuc900_audio->mmio))
+               return PTR_ERR(nuc900_audio->mmio);
 
-       nuc900_audio->clk = clk_get(&pdev->dev, NULL);
+       nuc900_audio->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(nuc900_audio->clk)) {
                ret = PTR_ERR(nuc900_audio->clk);
-               goto out2;
+               goto out;
        }
 
        nuc900_audio->irq_num = platform_get_irq(pdev, 0);
        if (!nuc900_audio->irq_num) {
                ret = -EBUSY;
-               goto out3;
+               goto out;
        }
 
        nuc900_ac97_data = nuc900_audio;
@@ -368,22 +359,14 @@ static int nuc900_ac97_drvprobe(struct platform_device *pdev)
        ret = snd_soc_register_component(&pdev->dev, &nuc900_ac97_component,
                                         &nuc900_ac97_dai, 1);
        if (ret)
-               goto out3;
+               goto out;
 
        /* enbale ac97 multifunction pin */
        mfp_set_groupg(nuc900_audio->dev, NULL);
 
        return 0;
 
-out3:
-       clk_put(nuc900_audio->clk);
-out2:
-       iounmap(nuc900_audio->mmio);
-out1:
-       release_mem_region(nuc900_audio->res->start,
-                                       resource_size(nuc900_audio->res));
-out0:
-       kfree(nuc900_audio);
+out:
        return ret;
 }
 
@@ -391,12 +374,6 @@ static int nuc900_ac97_drvremove(struct platform_device *pdev)
 {
        snd_soc_unregister_component(&pdev->dev);
 
-       clk_put(nuc900_ac97_data->clk);
-       iounmap(nuc900_ac97_data->mmio);
-       release_mem_region(nuc900_ac97_data->res->start,
-                               resource_size(nuc900_ac97_data->res));
-
-       kfree(nuc900_ac97_data);
        nuc900_ac97_data = NULL;
 
        return 0;
index cb88ead98917b354c459673ae879a80a37b40ad5..04d7fd461484af774b70350f0064626b2e45948e 100644 (file)
@@ -417,11 +417,9 @@ static int s3c_ac97_probe(struct platform_device *pdev)
                return -ENXIO;
        }
 
-       if (!request_mem_region(mem_res->start,
-                               resource_size(mem_res), "ac97")) {
-               dev_err(&pdev->dev, "Unable to request register region\n");
-               return -EBUSY;
-       }
+       s3c_ac97.regs = devm_ioremap_resource(&pdev->dev, mem_res);
+       if (IS_ERR(s3c_ac97.regs))
+               return PTR_ERR(s3c_ac97.regs);
 
        s3c_ac97_pcm_out.channel = dmatx_res->start;
        s3c_ac97_pcm_out.dma_addr = mem_res->start + S3C_AC97_PCM_DATA;
@@ -433,14 +431,7 @@ static int s3c_ac97_probe(struct platform_device *pdev)
        init_completion(&s3c_ac97.done);
        mutex_init(&s3c_ac97.lock);
 
-       s3c_ac97.regs = ioremap(mem_res->start, resource_size(mem_res));
-       if (s3c_ac97.regs == NULL) {
-               dev_err(&pdev->dev, "Unable to ioremap register region\n");
-               ret = -ENXIO;
-               goto err1;
-       }
-
-       s3c_ac97.ac97_clk = clk_get(&pdev->dev, "ac97");
+       s3c_ac97.ac97_clk = devm_clk_get(&pdev->dev, "ac97");
        if (IS_ERR(s3c_ac97.ac97_clk)) {
                dev_err(&pdev->dev, "ac97 failed to get ac97_clock\n");
                ret = -ENODEV;
@@ -480,18 +471,14 @@ err5:
 err4:
 err3:
        clk_disable_unprepare(s3c_ac97.ac97_clk);
-       clk_put(s3c_ac97.ac97_clk);
 err2:
-       iounmap(s3c_ac97.regs);
-err1:
-       release_mem_region(mem_res->start, resource_size(mem_res));
 
        return ret;
 }
 
 static int s3c_ac97_remove(struct platform_device *pdev)
 {
-       struct resource *mem_res, *irq_res;
+       struct resource *irq_res;
 
        asoc_dma_platform_unregister(&pdev->dev);
        snd_soc_unregister_component(&pdev->dev);
@@ -501,13 +488,6 @@ static int s3c_ac97_remove(struct platform_device *pdev)
                free_irq(irq_res->start, NULL);
 
        clk_disable_unprepare(s3c_ac97.ac97_clk);
-       clk_put(s3c_ac97.ac97_clk);
-
-       iounmap(s3c_ac97.regs);
-
-       mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (mem_res)
-               release_mem_region(mem_res->start, resource_size(mem_res));
 
        return 0;
 }
index 2f70ea7f6618ae04dc8f125925638d4e9f90c147..48037f784a8667493730de062410826d6b61f3c5 100644 (file)
@@ -327,7 +327,7 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
        }
        dev_set_drvdata(&pdev->dev, ac97);
 
-       ac97->clk_ac97 = clk_get(&pdev->dev, NULL);
+       ac97->clk_ac97 = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(ac97->clk_ac97)) {
                dev_err(&pdev->dev, "Can't retrieve ac97 clock\n");
                ret = PTR_ERR(ac97->clk_ac97);
@@ -341,18 +341,10 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
                goto err_clk_put;
        }
 
-       memregion = devm_request_mem_region(&pdev->dev, mem->start,
-                                           resource_size(mem), DRV_NAME);
-       if (!memregion) {
-               dev_err(&pdev->dev, "Memory region already claimed\n");
-               ret = -EBUSY;
-               goto err_clk_put;
-       }
-
-       regs = devm_ioremap(&pdev->dev, mem->start, resource_size(mem));
-       if (!regs) {
-               dev_err(&pdev->dev, "ioremap failed\n");
-               ret = -ENOMEM;
+       regs = devm_ioremap_resource(&pdev->dev, mem);
+       if (IS_ERR(regs)) {
+               ret = PTR_ERR(regs);
+               dev_err(&pdev->dev, "ioremap failed: %d\n", ret);
                goto err_clk_put;
        }
 
@@ -403,23 +395,9 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
        ac97->capture_dma_data.maxburst = 4;
        ac97->capture_dma_data.slave_id = of_dma[0];
 
-       ret = snd_soc_register_component(&pdev->dev, &tegra20_ac97_component,
-                                        &tegra20_ac97_dai, 1);
-       if (ret) {
-               dev_err(&pdev->dev, "Could not register DAI: %d\n", ret);
-               ret = -ENOMEM;
-               goto err_clk_put;
-       }
-
-       ret = tegra_pcm_platform_register(&pdev->dev);
-       if (ret) {
-               dev_err(&pdev->dev, "Could not register PCM: %d\n", ret);
-               goto err_unregister_component;
-       }
-
        ret = tegra_asoc_utils_init(&ac97->util_data, &pdev->dev);
        if (ret)
-               goto err_unregister_pcm;
+               goto err_clk_put;
 
        ret = tegra_asoc_utils_set_ac97_rate(&ac97->util_data);
        if (ret)
@@ -431,19 +409,32 @@ static int tegra20_ac97_platform_probe(struct platform_device *pdev)
                goto err_asoc_utils_fini;
        }
 
+       ret = snd_soc_register_component(&pdev->dev, &tegra20_ac97_component,
+                                        &tegra20_ac97_dai, 1);
+       if (ret) {
+               dev_err(&pdev->dev, "Could not register DAI: %d\n", ret);
+               ret = -ENOMEM;
+               goto err_asoc_utils_fini;
+       }
+
+       ret = tegra_pcm_platform_register(&pdev->dev);
+       if (ret) {
+               dev_err(&pdev->dev, "Could not register PCM: %d\n", ret);
+               goto err_unregister_component;
+       }
+
        /* XXX: crufty ASoC AC97 API - only one AC97 codec allowed */
        workdata = ac97;
 
        return 0;
 
-err_asoc_utils_fini:
-       tegra_asoc_utils_fini(&ac97->util_data);
 err_unregister_pcm:
        tegra_pcm_platform_unregister(&pdev->dev);
 err_unregister_component:
        snd_soc_unregister_component(&pdev->dev);
+err_asoc_utils_fini:
+       tegra_asoc_utils_fini(&ac97->util_data);
 err_clk_put:
-       clk_put(ac97->clk_ac97);
 err:
        return ret;
 }
@@ -458,7 +449,6 @@ static int tegra20_ac97_platform_remove(struct platform_device *pdev)
        tegra_asoc_utils_fini(&ac97->util_data);
 
        clk_disable_unprepare(ac97->clk_ac97);
-       clk_put(ac97->clk_ac97);
 
        return 0;
 }
index 8a2840304d288e80cbce6e0b7946d354eaa8b1cb..8ee8d42200144e914cfdb15483834d851e633cf2 100644 (file)
@@ -188,9 +188,9 @@ static int txx9aclc_ac97_dev_probe(struct platform_device *pdev)
        if (!r)
                return -EBUSY;
 
-       if (!devm_request_mem_region(&pdev->dev, r->start, resource_size(r),
-                                    dev_name(&pdev->dev)))
-               return -EBUSY;
+       drvdata->base = devm_ioremap_resource(&pdev->dev, r);
+       if (IS_ERR(drvdata->base))
+               return PTR_ERR(drvdata->base);
 
        drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
        if (!drvdata)
@@ -201,9 +201,6 @@ static int txx9aclc_ac97_dev_probe(struct platform_device *pdev)
            r->start >= TXX9_DIRECTMAP_BASE &&
            r->start < TXX9_DIRECTMAP_BASE + 0x400000)
                drvdata->physbase |= 0xf00000000ull;
-       drvdata->base = devm_ioremap(&pdev->dev, r->start, resource_size(r));
-       if (!drvdata->base)
-               return -EBUSY;
        err = devm_request_irq(&pdev->dev, irq, txx9aclc_ac97_irq,
                               0, dev_name(&pdev->dev), drvdata);
        if (err < 0)