[media] adv7604: return immediately if the new input is equal to what is configured
authorMats Randgaard <matrandg@cisco.com>
Thu, 5 Dec 2013 13:24:05 +0000 (10:24 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 7 Jan 2014 08:07:07 +0000 (06:07 -0200)
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>
drivers/media/i2c/adv7604.c

index c85f86c9c6055a66b8a9487e678f332ed3e2b02c..4e7d39a5b20eb9b82a6a0ca7b193a43961df7049 100644 (file)
@@ -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) {