upstream: [media] adv7842: composite sd-ram test, clear timings before setting
authorMartin Bugge <marbugge@cisco.com>
Thu, 5 Dec 2013 15:18:14 +0000 (12:18 -0300)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:55:30 +0000 (11:55 +0900)
Must clear timings before setting after test to recover.

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>
drivers/media/i2c/adv7842.c

index ed22dd1..890095b 100644 (file)
@@ -2696,6 +2696,7 @@ static int adv7842_command_ram_test(struct v4l2_subdev *sd)
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        struct adv7842_state *state = to_state(sd);
        struct adv7842_platform_data *pdata = client->dev.platform_data;
+       struct v4l2_dv_timings timings;
        int ret = 0;
 
        if (!pdata)
@@ -2726,12 +2727,16 @@ static int adv7842_command_ram_test(struct v4l2_subdev *sd)
 
        enable_input(sd);
 
-       adv7842_s_dv_timings(sd, &state->timings);
-
        edid_write_vga_segment(sd);
        edid_write_hdmi_segment(sd, ADV7842_EDID_PORT_A);
        edid_write_hdmi_segment(sd, ADV7842_EDID_PORT_B);
 
+       timings = state->timings;
+
+       memset(&state->timings, 0, sizeof(struct v4l2_dv_timings));
+
+       adv7842_s_dv_timings(sd, &timings);
+
        return ret;
 }