From 5819643946efc52bd2ae0034c8122e28d32b8a74 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sun, 3 Mar 2013 20:12:31 -0300 Subject: [PATCH] --- yaml --- r: 366760 b: refs/heads/master c: 2180f92def1921397f422f278b3cc65751b749cc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/media/v4l2-device.h | 13 +++++++++++++ trunk/include/media/v4l2-subdev.h | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index f150264e4423..dbdf22c8350c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6cd247ef22e493e1884e576c066661538b031981 +refs/heads/master: 2180f92def1921397f422f278b3cc65751b749cc diff --git a/trunk/include/media/v4l2-device.h b/trunk/include/media/v4l2-device.h index d61febfb1668..c9b1593923f6 100644 --- a/trunk/include/media/v4l2-device.h +++ b/trunk/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 diff --git a/trunk/include/media/v4l2-subdev.h b/trunk/include/media/v4l2-subdev.h index 8158a0810fdc..c42703a37602 100644 --- a/trunk/include/media/v4l2-subdev.h +++ b/trunk/include/media/v4l2-subdev.h @@ -687,4 +687,7 @@ void v4l2_subdev_init(struct v4l2_subdev *sd, ((!(sd) || !(sd)->v4l2_dev || !(sd)->v4l2_dev->notify) ? -ENODEV : \ (sd)->v4l2_dev->notify((sd), (notification), (arg))) +#define v4l2_subdev_has_op(sd, o, f) \ + ((sd)->ops->o && (sd)->ops->o->f) + #endif