Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
                return -ENODEV;
        }
 
-       data = kzalloc(sizeof(*data), GFP_KERNEL);
+       data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL);
        if (data == NULL) {
                dev_err(dev, "Can not allocate memory\n");
                return -ENOMEM;
        if (data->power_gpio >= 0)
                gpio_free(data->power_gpio);
 err_gpio:
-       kfree(data);
        tpa6130a2_client = NULL;
 
        return ret;
                gpio_free(data->power_gpio);
 
        regulator_put(data->supply);
-
-       kfree(data);
        tpa6130a2_client = NULL;
 
        return 0;