dev_dbg(&spi->dev, "probing tlv320aic26 spi device\n");
 
        /* Allocate driver data */
-       aic26 = kzalloc(sizeof *aic26, GFP_KERNEL);
+       aic26 = devm_kzalloc(&spi->dev, sizeof *aic26, GFP_KERNEL);
        if (!aic26)
                return -ENOMEM;
 
 
        ret = snd_soc_register_codec(&spi->dev,
                        &aic26_soc_codec_dev, &aic26_dai, 1);
-       if (ret < 0)
-               kfree(aic26);
        return ret;
-
-       dev_dbg(&spi->dev, "SPI device initialized\n");
-       return 0;
 }
 
 static int aic26_spi_remove(struct spi_device *spi)
 {
        snd_soc_unregister_codec(&spi->dev);
-       kfree(spi_get_drvdata(spi));
        return 0;
 }