summaryrefslogtreecommitdiffstats
path: root/drivers/media/i2c
diff options
context:
space:
mode:
authorMats Randgaard <matrandg@cisco.com>2013-12-05 10:24:05 -0300
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-01-07 06:07:07 -0200
commitff4f80fdfaefb7906ed58ec36248591687f927b5 (patch)
treebb34b539e067608a17fbf995dc2ee8bbb39c4dc9 /drivers/media/i2c
parent94b130131115de6c7c6b6228379e61d270ab8966 (diff)
[media] adv7604: return immediately if the new input is equal to what is configured
Signed-off-by: Mats Randgaard <matrandg@cisco.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/i2c')
-rw-r--r--drivers/media/i2c/adv7604.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c
index c85f86c9c60..4e7d39a5b20 100644
--- a/drivers/media/i2c/adv7604.c
+++ b/drivers/media/i2c/adv7604.c
@@ -1479,7 +1479,11 @@ static int adv7604_s_routing(struct v4l2_subdev *sd,
{
struct adv7604_state *state = to_state(sd);
- v4l2_dbg(2, debug, sd, "%s: input %d", __func__, input);
+ v4l2_dbg(2, debug, sd, "%s: input %d, selected input %d",
+ __func__, input, state->selected_input);
+
+ if (input == state->selected_input)
+ return 0;
state->selected_input = input;
@@ -1524,6 +1528,8 @@ static int adv7604_isr(struct v4l2_subdev *sd, u32 status, bool *handled)
u8 fmt_change, fmt_change_digital, tx_5v;
u32 input_status;
+ v4l2_dbg(2, debug, sd, "%s: ", __func__);
+
/* format change */
fmt_change = io_read(sd, 0x43) & 0x98;
if (fmt_change)
@@ -2124,6 +2130,7 @@ static int adv7604_probe(struct i2c_client *client,
/* initialize variables */
state->restart_stdi_once = true;
state->prev_input_status = ~0;
+ state->selected_input = ~0;
/* platform data */
if (!pdata) {