summaryrefslogtreecommitdiff
path: root/drivers/media/i2c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/i2c')
-rw-r--r--drivers/media/i2c/ov5640.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/media/i2c/ov5640.c b/drivers/media/i2c/ov5640.c
index 2e947fa90062..73b45e6cdb6d 100644
--- a/drivers/media/i2c/ov5640.c
+++ b/drivers/media/i2c/ov5640.c
@@ -3087,11 +3087,28 @@ out:
return ret;
}
+static long ov5640_s_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
+{
+ struct ov5640_dev *sensor = to_ov5640_dev(sd);
+ int ret = -ENOIOCTLCMD;
+
+ switch (cmd) {
+ case V4L2_CID_TEST_PATTERN:
+ ret = v4l2_ctrl_s_ctrl(sensor->ctrls.test_pattern, *(s32 *)arg);
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+}
+
static const struct v4l2_subdev_core_ops ov5640_core_ops = {
.s_power = ov5640_s_power,
.log_status = v4l2_ctrl_subdev_log_status,
.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
.unsubscribe_event = v4l2_event_subdev_unsubscribe,
+ .ioctl = ov5640_s_ioctl,
};
static const struct v4l2_subdev_video_ops ov5640_video_ops = {