[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)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 7 Jan 2014 08:42:50 +0000 (06:42 -0200)
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 e6932f46bf98083800e410f2b23f22d489a70f32..ecbe3f29c1abf1935eded0639c69f92bf5df4847 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;
 }