[media] media/v4l2-ctrls: Always execute EXECUTE_ON_WRITE ctrls
authorRicardo Ribalda <ricardo.ribalda@gmail.com>
Fri, 20 Mar 2015 13:55:37 +0000 (10:55 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 8 Apr 2015 09:34:44 +0000 (06:34 -0300)
Any control with V4L2_CTRL_FLAG_EXECUTE_ON_WRITE set should return
changed == true in cluster_changed.

This forces the value to be passed to the driver even if it has not
changed.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/v4l2-core/v4l2-ctrls.c

index bacaed64a803a52a2ed2677f530ce6d2c2cebe8c..e3a3468002e6950798eaac3a9a978d5cd39c6903 100644 (file)
@@ -1611,6 +1611,10 @@ static int cluster_changed(struct v4l2_ctrl *master)
 
                if (ctrl == NULL)
                        continue;
+
+               if (ctrl->flags & V4L2_CTRL_FLAG_EXECUTE_ON_WRITE)
+                       changed = ctrl_changed = true;
+
                /*
                 * Set has_changed to false to avoid generating
                 * the event V4L2_EVENT_CTRL_CH_VALUE