media: ov5670: Add implementation for events
Use v4l2 control API helpers to support the events. Fixes v4l2-compliance: test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
5bd4098c3d
commit
dce6dd4493
|
@ -7,6 +7,7 @@
|
|||
#include <linux/pm_runtime.h>
|
||||
#include <media/v4l2-ctrls.h>
|
||||
#include <media/v4l2-device.h>
|
||||
#include <media/v4l2-event.h>
|
||||
#include <media/v4l2-fwnode.h>
|
||||
|
||||
#define OV5670_REG_CHIP_ID 0x300a
|
||||
|
@ -2420,6 +2421,12 @@ static int ov5670_identify_module(struct ov5670 *ov5670)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct v4l2_subdev_core_ops ov5670_core_ops = {
|
||||
.log_status = v4l2_ctrl_subdev_log_status,
|
||||
.subscribe_event = v4l2_ctrl_subdev_subscribe_event,
|
||||
.unsubscribe_event = v4l2_event_subdev_unsubscribe,
|
||||
};
|
||||
|
||||
static const struct v4l2_subdev_video_ops ov5670_video_ops = {
|
||||
.s_stream = ov5670_set_stream,
|
||||
};
|
||||
|
@ -2436,6 +2443,7 @@ static const struct v4l2_subdev_sensor_ops ov5670_sensor_ops = {
|
|||
};
|
||||
|
||||
static const struct v4l2_subdev_ops ov5670_subdev_ops = {
|
||||
.core = &ov5670_core_ops,
|
||||
.video = &ov5670_video_ops,
|
||||
.pad = &ov5670_pad_ops,
|
||||
.sensor = &ov5670_sensor_ops,
|
||||
|
@ -2489,7 +2497,8 @@ static int ov5670_probe(struct i2c_client *client)
|
|||
}
|
||||
|
||||
ov5670->sd.internal_ops = &ov5670_internal_ops;
|
||||
ov5670->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
|
||||
ov5670->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
|
||||
V4L2_SUBDEV_FL_HAS_EVENTS;
|
||||
ov5670->sd.entity.ops = &ov5670_subdev_entity_ops;
|
||||
ov5670->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR;
|
||||
|
||||
|
|
Loading…
Reference in New Issue