]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ASoC: sgtl5000: use devm_* functions to allocate memory
authorLothar Waßmann <LW@KARO-electronics.de>
Thu, 17 Jul 2014 11:27:02 +0000 (13:27 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Wed, 27 Aug 2014 08:44:20 +0000 (10:44 +0200)
sound/soc/codecs/sgtl5000.c

index fc7598d08eef39ed9254147f3591ec62fa78e5d6..9f126d625d8ace2325042d40d4d1e680d516bd99 100644 (file)
@@ -841,19 +841,14 @@ static int ldo_regulator_register(struct snd_soc_codec *codec,
        struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec);
        struct regulator_config config = { };
 
-       ldo = kzalloc(sizeof(struct ldo_regulator), GFP_KERNEL);
-
-       if (!ldo) {
-               dev_err(codec->dev, "failed to allocate ldo_regulator\n");
+       ldo = devm_kzalloc(codec->dev, sizeof(*ldo), GFP_KERNEL);
+       if (!ldo)
                return -ENOMEM;
-       }
 
-       ldo->desc.name = kstrdup(dev_name(codec->dev), GFP_KERNEL);
-       if (!ldo->desc.name) {
-               kfree(ldo);
-               dev_err(codec->dev, "failed to allocate decs name memory\n");
+       ldo->desc.name = devm_kstrdup(codec->dev, dev_name(codec->dev),
+                               GFP_KERNEL);
+       if (!ldo->desc.name)
                return -ENOMEM;
-       }
 
        ldo->desc.type  = REGULATOR_VOLTAGE;
        ldo->desc.owner = THIS_MODULE;
@@ -869,13 +864,8 @@ static int ldo_regulator_register(struct snd_soc_codec *codec,
 
        ldo->dev = regulator_register(&ldo->desc, &config);
        if (IS_ERR(ldo->dev)) {
-               int ret = PTR_ERR(ldo->dev);
-
                dev_err(codec->dev, "failed to register regulator\n");
-               kfree(ldo->desc.name);
-               kfree(ldo);
-
-               return ret;
+               return PTR_ERR(ldo->dev);
        }
        sgtl5000->ldo = ldo;
 
@@ -891,8 +881,6 @@ static int ldo_regulator_remove(struct snd_soc_codec *codec)
                return 0;
 
        regulator_unregister(ldo->dev);
-       kfree(ldo->desc.name);
-       kfree(ldo);
 
        return 0;
 }