diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2013-03-04 00:12:31 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-24 15:59:02 +0100 |
commit | 2180f92def1921397f422f278b3cc65751b749cc (patch) | |
tree | 3bf6090c56cd6eb0fc85107b8f6f17b1f9c80979 /include/media/v4l2-device.h | |
parent | [media] v4l2-ctrls: eliminate lockdep false alarms for struct v4l2_ctrl_handl... (diff) | |
download | linux-2180f92def1921397f422f278b3cc65751b749cc.tar.xz linux-2180f92def1921397f422f278b3cc65751b749cc.zip |
[media] v4l2-core: add code to check for specific ops
This patch adds a v4l2_subdev_has_op() macro and a v4l2_device_has_op macro to
quickly check if a specific subdev or any subdev supports a particular subdev
operation.
This makes it easy for drivers to disable certain ioctls if none of the subdevs
supports the necessary functionality.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include/media/v4l2-device.h')
-rw-r--r-- | include/media/v4l2-device.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h index d61febfb1668..c9b1593923f6 100644 --- a/include/media/v4l2-device.h +++ b/include/media/v4l2-device.h @@ -190,4 +190,17 @@ v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev); ##args); \ }) +#define v4l2_device_has_op(v4l2_dev, o, f) \ +({ \ + struct v4l2_subdev *__sd; \ + bool __result = false; \ + list_for_each_entry(__sd, &(v4l2_dev)->subdevs, list) { \ + if (v4l2_subdev_has_op(__sd, o, f)) { \ + __result = true; \ + break; \ + } \ + } \ + __result; \ +}) + #endif |