summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Bugge <marbugge@cisco.com>2013-12-12 17:10:57 +0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-01-07 12:46:57 +0400
commit834a8be1566f6db57a95954cc7bcc9d1e95aa80b (patch)
tree20427ea899009ec20880bd8f664b52f2d066fe53
parent15058aac06dc706c549a66f0e254046cbc844b9b (diff)
downloadlinux-834a8be1566f6db57a95954cc7bcc9d1e95aa80b.tar.xz
[media] adv7842: return 0 if no change in s_dv_timings
Return 0 if the new timings are equal to the current timings as it caused extra cp-loss/lock interrupts. Signed-off-by: Martin Bugge <marbugge@cisco.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--drivers/media/i2c/adv7842.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/i2c/adv7842.c b/drivers/media/i2c/adv7842.c
index ba748637b7ca..c69711756c8e 100644
--- a/drivers/media/i2c/adv7842.c
+++ b/drivers/media/i2c/adv7842.c
@@ -1453,6 +1453,11 @@ static int adv7842_s_dv_timings(struct v4l2_subdev *sd,
if (state->mode == ADV7842_MODE_SDP)
return -ENODATA;
+ if (v4l2_match_dv_timings(&state->timings, timings, 0)) {
+ v4l2_dbg(1, debug, sd, "%s: no change\n", __func__);
+ return 0;
+ }
+
bt = &timings->bt;
if (!v4l2_valid_dv_timings(timings, adv7842_get_dv_timings_cap(sd),