diff options
author | James Morris <james.l.morris@oracle.com> | 2015-11-23 22:46:28 +1100 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2015-11-23 22:46:28 +1100 |
commit | ebd68df3f24b318d391d15c458d6f43f340ba36a (patch) | |
tree | f0277bc4b853abe5db1d30fa4e10b05bba7f2ac5 /drivers/media/i2c/tvp5150.c | |
parent | security/capability.h: cap_issubset/isclear can be boolean (diff) | |
parent | Linux 4.4-rc2 (diff) | |
download | linux-dev-ebd68df3f24b318d391d15c458d6f43f340ba36a.tar.xz linux-dev-ebd68df3f24b318d391d15c458d6f43f340ba36a.zip |
Sync to Linus v4.4-rc2 for LSM developers.
Diffstat (limited to 'drivers/media/i2c/tvp5150.c')
-rw-r--r-- | drivers/media/i2c/tvp5150.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c index 522a865c5c60..3c5fb2509c47 100644 --- a/drivers/media/i2c/tvp5150.c +++ b/drivers/media/i2c/tvp5150.c @@ -10,6 +10,7 @@ #include <linux/videodev2.h> #include <linux/delay.h> #include <linux/module.h> +#include <media/v4l2-async.h> #include <media/v4l2-device.h> #include <media/tvp5150.h> #include <media/v4l2-ctrls.h> @@ -1172,8 +1173,7 @@ static int tvp5150_probe(struct i2c_client *c, sd->ctrl_handler = &core->hdl; if (core->hdl.error) { res = core->hdl.error; - v4l2_ctrl_handler_free(&core->hdl); - return res; + goto err; } v4l2_ctrl_handler_setup(&core->hdl); @@ -1186,9 +1186,17 @@ static int tvp5150_probe(struct i2c_client *c, core->rect.left = 0; core->rect.width = TVP5150_H_MAX; + res = v4l2_async_register_subdev(sd); + if (res < 0) + goto err; + if (debug > 1) tvp5150_log_status(sd); return 0; + +err: + v4l2_ctrl_handler_free(&core->hdl); + return res; } static int tvp5150_remove(struct i2c_client *c) @@ -1200,7 +1208,7 @@ static int tvp5150_remove(struct i2c_client *c) "tvp5150.c: removing tvp5150 adapter on address 0x%x\n", c->addr << 1); - v4l2_device_unregister_subdev(sd); + v4l2_async_unregister_subdev(sd); v4l2_ctrl_handler_free(&decoder->hdl); return 0; } |