ASoC: Convert ad1836 to devm_kzalloc()
authorAxel Lin <axel.lin@gmail.com>
Mon, 26 Dec 2011 12:50:02 +0000 (20:50 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 28 Dec 2011 17:22:40 +0000 (17:22 +0000)
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/ad1836.c

index 919322daf6dd5fd3f021d1364f679dbae5bf3a20..982d201c2e8699589ab049544e517d2f69db3678 100644 (file)
@@ -341,7 +341,8 @@ static int __devinit ad1836_spi_probe(struct spi_device *spi)
        struct ad1836_priv *ad1836;
        int ret;
 
-       ad1836 = kzalloc(sizeof(struct ad1836_priv), GFP_KERNEL);
+       ad1836 = devm_kzalloc(&spi->dev, sizeof(struct ad1836_priv),
+                             GFP_KERNEL);
        if (ad1836 == NULL)
                return -ENOMEM;
 
@@ -351,17 +352,15 @@ static int __devinit ad1836_spi_probe(struct spi_device *spi)
 
        ret = snd_soc_register_codec(&spi->dev,
                        &soc_codec_dev_ad1836, &ad183x_dais[ad1836->type], 1);
-       if (ret < 0)
-               kfree(ad1836);
        return ret;
 }
 
 static int __devexit ad1836_spi_remove(struct spi_device *spi)
 {
        snd_soc_unregister_codec(&spi->dev);
-       kfree(spi_get_drvdata(spi));
        return 0;
 }
+
 static const struct spi_device_id ad1836_ids[] = {
        { "ad1835", AD1835 },
        { "ad1836", AD1836 },