aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18/cx18-driver.c
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-01-30 20:48:40 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-30 11:42:38 -0400
commitd5c02f6b27b8e70c11b341eef709e5f64ca16e42 (patch)
tree952b049f15d150fbb6e450e07978ecd4b875b554 /drivers/media/video/cx18/cx18-driver.c
parent072e6183c26cb00de0368a06cbbda2a2d55e6844 (diff)
V4L/DVB (10435): cx18: Normalize APU after second APU firmware load
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18/cx18-driver.c')
-rw-r--r--drivers/media/video/cx18/cx18-driver.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c
index 0f13fdd890a4..1518a58e17fc 100644
--- a/drivers/media/video/cx18/cx18-driver.c
+++ b/drivers/media/video/cx18/cx18-driver.c
@@ -1080,6 +1080,19 @@ int cx18_init_on_first_open(struct cx18 *cx)
1080 return -ENXIO; 1080 return -ENXIO;
1081 } 1081 }
1082 1082
1083 /*
1084 * The second firmware load requires us to normalize the APU state,
1085 * or the audio for the first analog capture will be badly incorrect.
1086 *
1087 * I can't seem to call APU_RESETAI and have it succeed without the
1088 * APU capturing audio, so we start and stop it here to do the reset
1089 */
1090
1091 /* MPEG Encoding, 224 kbps, MPEG Layer II, 48 ksps */
1092 cx18_vapi(cx, CX18_APU_START, 2, CX18_APU_ENCODING_METHOD_MPEG|0xb9, 0);
1093 cx18_vapi(cx, CX18_APU_RESETAI, 0);
1094 cx18_vapi(cx, CX18_APU_STOP, 1, CX18_APU_ENCODING_METHOD_MPEG);
1095
1083 vf.tuner = 0; 1096 vf.tuner = 0;
1084 vf.type = V4L2_TUNER_ANALOG_TV; 1097 vf.type = V4L2_TUNER_ANALOG_TV;
1085 vf.frequency = 6400; /* the tuner 'baseline' frequency */ 1098 vf.frequency = 6400; /* the tuner 'baseline' frequency */