]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/i2c/tw9903.c
Merge git://git.kvack.org/~bcrl/aio-next
[karo-tx-linux.git] / drivers / media / i2c / tw9903.c
index 87880b19d8c3fcc633a6338f04ac634d3acf1929..285b759a5f7f11c74a9f24cec7f1f58bd0ef9b60 100644 (file)
@@ -215,7 +215,7 @@ static int tw9903_probe(struct i2c_client *client,
        v4l_info(client, "chip found @ 0x%02x (%s)\n",
                        client->addr << 1, client->adapter->name);
 
-       dec = kzalloc(sizeof(struct tw9903), GFP_KERNEL);
+       dec = devm_kzalloc(&client->dev, sizeof(*dec), GFP_KERNEL);
        if (dec == NULL)
                return -ENOMEM;
        sd = &dec->sd;
@@ -233,7 +233,6 @@ static int tw9903_probe(struct i2c_client *client,
                int err = hdl->error;
 
                v4l2_ctrl_handler_free(hdl);
-               kfree(dec);
                return err;
        }
 
@@ -242,7 +241,6 @@ static int tw9903_probe(struct i2c_client *client,
 
        if (write_regs(sd, initial_registers) < 0) {
                v4l2_err(client, "error initializing TW9903\n");
-               kfree(dec);
                return -EINVAL;
        }
 
@@ -255,7 +253,6 @@ static int tw9903_remove(struct i2c_client *client)
 
        v4l2_device_unregister_subdev(sd);
        v4l2_ctrl_handler_free(&to_state(sd)->hdl);
-       kfree(to_state(sd));
        return 0;
 }