[media] v4l: subdev: Events support
Provide v4l2_subdevs with v4l2_event support. Subdev drivers only need very little to support events. Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi> Signed-off-by: David Cohen <dacohen@gmail.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
ea8aa4349e
commit
02adb1cc76
@@ -37,6 +37,8 @@
|
||||
|
||||
struct v4l2_device;
|
||||
struct v4l2_ctrl_handler;
|
||||
struct v4l2_event_subscription;
|
||||
struct v4l2_fh;
|
||||
struct v4l2_subdev;
|
||||
struct tuner_setup;
|
||||
|
||||
@@ -161,6 +163,10 @@ struct v4l2_subdev_core_ops {
|
||||
int (*s_power)(struct v4l2_subdev *sd, int on);
|
||||
int (*interrupt_service_routine)(struct v4l2_subdev *sd,
|
||||
u32 status, bool *handled);
|
||||
int (*subscribe_event)(struct v4l2_subdev *sd, struct v4l2_fh *fh,
|
||||
struct v4l2_event_subscription *sub);
|
||||
int (*unsubscribe_event)(struct v4l2_subdev *sd, struct v4l2_fh *fh,
|
||||
struct v4l2_event_subscription *sub);
|
||||
};
|
||||
|
||||
/* s_mode: switch the tuner to a specific tuner mode. Replacement of s_radio.
|
||||
@@ -437,6 +443,8 @@ struct v4l2_subdev_internal_ops {
|
||||
#define V4L2_SUBDEV_FL_IS_SPI (1U << 1)
|
||||
/* Set this flag if this subdev needs a device node. */
|
||||
#define V4L2_SUBDEV_FL_HAS_DEVNODE (1U << 2)
|
||||
/* Set this flag if this subdev generates events. */
|
||||
#define V4L2_SUBDEV_FL_HAS_EVENTS (1U << 3)
|
||||
|
||||
/* Each instance of a subdev driver should create this struct, either
|
||||
stand-alone or embedded in a larger struct.
|
||||
@@ -460,6 +468,8 @@ struct v4l2_subdev {
|
||||
void *host_priv;
|
||||
/* subdev device node */
|
||||
struct video_device devnode;
|
||||
/* number of events to be allocated on open */
|
||||
unsigned int nevents;
|
||||
};
|
||||
|
||||
#define vdev_to_v4l2_subdev(vdev) \
|
||||
|
||||
Reference in New Issue
Block a user