diff options
-rw-r--r-- | drivers/media/v4l2-core/v4l2-ctrls.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index 45c5b4710601..2ebc33e18041 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c | |||
@@ -1609,6 +1609,15 @@ static int cluster_changed(struct v4l2_ctrl *master) | |||
1609 | 1609 | ||
1610 | if (ctrl == NULL) | 1610 | if (ctrl == NULL) |
1611 | continue; | 1611 | continue; |
1612 | /* | ||
1613 | * Set has_changed to false to avoid generating | ||
1614 | * the event V4L2_EVENT_CTRL_CH_VALUE | ||
1615 | */ | ||
1616 | if (ctrl->flags & V4L2_CTRL_FLAG_VOLATILE) { | ||
1617 | ctrl->has_changed = false; | ||
1618 | continue; | ||
1619 | } | ||
1620 | |||
1612 | for (idx = 0; !ctrl_changed && idx < ctrl->elems; idx++) | 1621 | for (idx = 0; !ctrl_changed && idx < ctrl->elems; idx++) |
1613 | ctrl_changed = !ctrl->type_ops->equal(ctrl, idx, | 1622 | ctrl_changed = !ctrl->type_ops->equal(ctrl, idx, |
1614 | ctrl->p_cur, ctrl->p_new); | 1623 | ctrl->p_cur, ctrl->p_new); |