upstream: [media] au8522: Fix demod analog mode setting
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Sun, 8 Jun 2014 16:54:55 +0000 (13:54 -0300)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:59:46 +0000 (11:59 +0900)
There are several issues on the current code:
1) msleep(1) is actually equivalent to msleep(10);
2) au8522_video_set() will set reg 0xa4 to the
   proper value for SIF, CVBS or S-Video. No need
   to force it to CVBS;
3) Let's not hardcode 0x9d for CBS on audio_set.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=c9f5ccc24d1c
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/dvb-frontends/au8522_decoder.c

index 5699222..b971c20 100644 (file)
@@ -458,8 +458,9 @@ static void set_audio_input(struct au8522_state *state)
        au8522_writereg(state, AU8522_I2C_CONTROL_REG0_REG090H, 0x84);
        msleep(150);
        au8522_writereg(state, AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H, 0x00);
-       msleep(1);
-       au8522_writereg(state, AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H, 0x9d);
+       msleep(10);
+       au8522_writereg(state, AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H,
+                       AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_CVBS);
        msleep(50);
        au8522_writereg(state, AU8522_AUDIO_VOLUME_L_REG0F2H, 0x7F);
        au8522_writereg(state, AU8522_AUDIO_VOLUME_R_REG0F3H, 0x7F);
@@ -585,12 +586,9 @@ static int au8522_s_stream(struct v4l2_subdev *sd, int enable)
 
                au8522_writereg(state, AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H,
                                0x01);
-               msleep(1);
-               au8522_writereg(state, AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H,
-                               AU8522_SYSTEM_MODULE_CONTROL_0_REG0A4H_CVBS);
+               msleep(10);
 
                au8522_video_set(state);
-
                set_audio_input(state);
 
                state->operational_mode = AU8522_ANALOG_MODE;