diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2013-05-02 07:29:43 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-05-21 06:52:15 -0400 |
commit | c02b211df6fc54e51ee554c27a6736a11255a764 (patch) | |
tree | a2b78b3a7a0400550fdd89da110d1b21a9e1acb1 /drivers/media/i2c/vs6624.c | |
parent | 95323361e5313733a54771c5059f5b352adbf32c (diff) |
[media] media: i2c: Convert to devm_kzalloc()
Using the managed function the kfree() calls can be removed from the
probe error path and the remove handler.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/i2c/vs6624.c')
-rw-r--r-- | drivers/media/i2c/vs6624.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/media/i2c/vs6624.c b/drivers/media/i2c/vs6624.c index 6b8c0b7aa488..94e284908f39 100644 --- a/drivers/media/i2c/vs6624.c +++ b/drivers/media/i2c/vs6624.c | |||
@@ -813,11 +813,9 @@ static int vs6624_probe(struct i2c_client *client, | |||
813 | /* wait 100ms before any further i2c writes are performed */ | 813 | /* wait 100ms before any further i2c writes are performed */ |
814 | mdelay(100); | 814 | mdelay(100); |
815 | 815 | ||
816 | sensor = kzalloc(sizeof(*sensor), GFP_KERNEL); | 816 | sensor = devm_kzalloc(&client->dev, sizeof(*sensor), GFP_KERNEL); |
817 | if (sensor == NULL) { | 817 | if (sensor == NULL) |
818 | gpio_free(*ce); | ||
819 | return -ENOMEM; | 818 | return -ENOMEM; |
820 | } | ||
821 | 819 | ||
822 | sd = &sensor->sd; | 820 | sd = &sensor->sd; |
823 | v4l2_i2c_subdev_init(sd, client, &vs6624_ops); | 821 | v4l2_i2c_subdev_init(sd, client, &vs6624_ops); |
@@ -865,7 +863,6 @@ static int vs6624_probe(struct i2c_client *client, | |||
865 | int err = hdl->error; | 863 | int err = hdl->error; |
866 | 864 | ||
867 | v4l2_ctrl_handler_free(hdl); | 865 | v4l2_ctrl_handler_free(hdl); |
868 | kfree(sensor); | ||
869 | gpio_free(*ce); | 866 | gpio_free(*ce); |
870 | return err; | 867 | return err; |
871 | } | 868 | } |
@@ -874,7 +871,6 @@ static int vs6624_probe(struct i2c_client *client, | |||
874 | ret = v4l2_ctrl_handler_setup(hdl); | 871 | ret = v4l2_ctrl_handler_setup(hdl); |
875 | if (ret) { | 872 | if (ret) { |
876 | v4l2_ctrl_handler_free(hdl); | 873 | v4l2_ctrl_handler_free(hdl); |
877 | kfree(sensor); | ||
878 | gpio_free(*ce); | 874 | gpio_free(*ce); |
879 | } | 875 | } |
880 | return ret; | 876 | return ret; |
@@ -888,7 +884,6 @@ static int vs6624_remove(struct i2c_client *client) | |||
888 | v4l2_device_unregister_subdev(sd); | 884 | v4l2_device_unregister_subdev(sd); |
889 | v4l2_ctrl_handler_free(sd->ctrl_handler); | 885 | v4l2_ctrl_handler_free(sd->ctrl_handler); |
890 | gpio_free(sensor->ce_pin); | 886 | gpio_free(sensor->ce_pin); |
891 | kfree(sensor); | ||
892 | return 0; | 887 | return 0; |
893 | } | 888 | } |
894 | 889 | ||