mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 01:49:36 +00:00
[media] Add helper function for subdev event notifications
Add a new helper function called v4l2_subdev_notify_event() which will deliver the specified event to both the v4l2 subdev event queue as well as to the notify callback. The former is typically used by userspace applications to listen to notification events while the later is used by bridge drivers. Combining both into the same function avoids boilerplate code in subdev drivers. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
aef5159ffc
commit
8ae5640f1b
2 changed files with 22 additions and 0 deletions
|
@ -588,3 +588,21 @@ void v4l2_subdev_init(struct v4l2_subdev *sd, const struct v4l2_subdev_ops *ops)
|
|||
#endif
|
||||
}
|
||||
EXPORT_SYMBOL(v4l2_subdev_init);
|
||||
|
||||
/**
|
||||
* v4l2_subdev_notify_event() - Delivers event notification for subdevice
|
||||
* @sd: The subdev for which to deliver the event
|
||||
* @ev: The event to deliver
|
||||
*
|
||||
* Will deliver the specified event to all userspace event listeners which are
|
||||
* subscribed to the v42l subdev event queue as well as to the bridge driver
|
||||
* using the notify callback. The notification type for the notify callback
|
||||
* will be V4L2_DEVICE_NOTIFY_EVENT.
|
||||
*/
|
||||
void v4l2_subdev_notify_event(struct v4l2_subdev *sd,
|
||||
const struct v4l2_event *ev)
|
||||
{
|
||||
v4l2_event_queue(sd->devnode, ev);
|
||||
v4l2_subdev_notify(sd, V4L2_DEVICE_NOTIFY_EVENT, (void *)ev);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(v4l2_subdev_notify_event);
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
|
||||
struct v4l2_device;
|
||||
struct v4l2_ctrl_handler;
|
||||
struct v4l2_event;
|
||||
struct v4l2_event_subscription;
|
||||
struct v4l2_fh;
|
||||
struct v4l2_subdev;
|
||||
|
@ -695,4 +696,7 @@ void v4l2_subdev_init(struct v4l2_subdev *sd,
|
|||
#define v4l2_subdev_has_op(sd, o, f) \
|
||||
((sd)->ops->o && (sd)->ops->o->f)
|
||||
|
||||
void v4l2_subdev_notify_event(struct v4l2_subdev *sd,
|
||||
const struct v4l2_event *ev);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue