ASoC: delete -spi suffix in ad1938 and free private data while registers fail
authorBarry Song <21cnbao@gmail.com>
Fri, 14 Aug 2009 04:06:38 +0000 (12:06 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 14 Aug 2009 16:53:02 +0000 (17:53 +0100)
Signed-off-by: Barry Song <21cnbao@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/ad1938.c

index 051f68cc99771e6697865370b051d01e0136dbaa..e62b27701a4926adc04a7ecb3d43f76c27cd1cfd 100644 (file)
@@ -456,7 +456,7 @@ static int __devexit ad1938_spi_remove(struct spi_device *spi)
 
 static struct spi_driver ad1938_spi_driver = {
        .driver = {
-               .name   = "ad1938-spi",
+               .name   = "ad1938",
                .bus    = &spi_bus_type,
                .owner  = THIS_MODULE,
        },
@@ -543,6 +543,7 @@ static int ad1938_register(struct ad1938_priv *ad1938)
        ret = snd_soc_register_codec(codec);
        if (ret != 0) {
                dev_err(codec->dev, "Failed to register codec: %d\n", ret);
+               kfree(ad1938);
                return ret;
        }
 
@@ -550,6 +551,7 @@ static int ad1938_register(struct ad1938_priv *ad1938)
        if (ret != 0) {
                dev_err(codec->dev, "Failed to register DAI: %d\n", ret);
                snd_soc_unregister_codec(codec);
+               kfree(ad1938);
                return ret;
        }