ASoC: tlv320aic31xx: Don't call kfree for memory allocated by devm_kzalloc
authorAxel Lin <axel.lin@ingics.com>
Sun, 16 Mar 2014 15:06:25 +0000 (23:06 +0800)
committerMark Brown <broonie@linaro.org>
Tue, 18 Mar 2014 12:00:27 +0000 (12:00 +0000)
The kfree call is not necessary, but we need to call snd_soc_unregister_codec()
in remove().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/codecs/tlv320aic31xx.c

index 1f243c2..e463ae7 100644 (file)
@@ -1229,7 +1229,6 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c,
                return -ENOMEM;
 
        aic31xx->regmap = devm_regmap_init_i2c(i2c, regmap_config);
-
        if (IS_ERR(aic31xx->regmap)) {
                ret = PTR_ERR(aic31xx->regmap);
                dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
@@ -1242,18 +1241,14 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c,
 
        aic31xx_device_init(aic31xx);
 
-       ret = snd_soc_register_codec(&i2c->dev, &soc_codec_driver_aic31xx,
+       return snd_soc_register_codec(&i2c->dev, &soc_codec_driver_aic31xx,
                                     aic31xx_dai_driver,
                                     ARRAY_SIZE(aic31xx_dai_driver));
-
-       return ret;
 }
 
 static int aic31xx_i2c_remove(struct i2c_client *i2c)
 {
-       struct aic31xx_priv *aic31xx = dev_get_drvdata(&i2c->dev);
-
-       kfree(aic31xx);
+       snd_soc_unregister_codec(&i2c->dev);
        return 0;
 }
 
@@ -1275,7 +1270,7 @@ static struct i2c_driver aic31xx_i2c_driver = {
                .of_match_table = of_match_ptr(tlv320aic31xx_of_match),
        },
        .probe          = aic31xx_i2c_probe,
-       .remove         = (aic31xx_i2c_remove),
+       .remove         = aic31xx_i2c_remove,
        .id_table       = aic31xx_i2c_id,
 };