Message ID | 1424175681-19787-1-git-send-email-ricardo.ribalda@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Ricardo, Thanks for the patch! Ricardo Ribalda Delgado wrote: > Volatile controls can change their value outside the v4l-ctrl framework. > We should ignore the cached written value of the ctrl when evaluating if > we should run s_ctrl. > > Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Hello Sakari On Tue, Feb 17, 2015 at 1:47 PM, Sakari Ailus <sakari.ailus@linux.intel.com> wrote: > Hi Ricardo, > > Thanks for the patch! Thank you > > > Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Could you take a look to v3 of the patch Thanks! > > -- > Sakari Ailus > sakari.ailus@linux.intel.com
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index 45c5b47..f0f58dd 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c @@ -1605,10 +1605,13 @@ static int cluster_changed(struct v4l2_ctrl *master) for (i = 0; i < master->ncontrols; i++) { struct v4l2_ctrl *ctrl = master->cluster[i]; - bool ctrl_changed = false; + bool ctrl_changed; if (ctrl == NULL) continue; + + ctrl_changed = ctrl->flags & V4L2_CTRL_FLAG_VOLATILE; + for (idx = 0; !ctrl_changed && idx < ctrl->elems; idx++) ctrl_changed = !ctrl->type_ops->equal(ctrl, idx, ctrl->p_cur, ctrl->p_new);
Volatile controls can change their value outside the v4l-ctrl framework. We should ignore the cached written value of the ctrl when evaluating if we should run s_ctrl. Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> --- v2: Do volatile test, once you know ctrl is not NULL drivers/media/v4l2-core/v4l2-ctrls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)