diff options
author | Andy Walls <awalls@radix.net> | 2009-01-31 02:48:40 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 17:42:38 +0200 |
commit | d5c02f6b27b8e70c11b341eef709e5f64ca16e42 (patch) | |
tree | 952b049f15d150fbb6e450e07978ecd4b875b554 /drivers/media/video/cx18/cx18-driver.c | |
parent | V4L/DVB (10434): cx18: Smarter verification of CX18_AUDIO_ENABLE register writes (diff) | |
download | linux-d5c02f6b27b8e70c11b341eef709e5f64ca16e42.tar.xz linux-d5c02f6b27b8e70c11b341eef709e5f64ca16e42.zip |
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.c | 13 |
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) return -ENXIO; } + /* + * The second firmware load requires us to normalize the APU state, + * or the audio for the first analog capture will be badly incorrect. + * + * I can't seem to call APU_RESETAI and have it succeed without the + * APU capturing audio, so we start and stop it here to do the reset + */ + + /* MPEG Encoding, 224 kbps, MPEG Layer II, 48 ksps */ + cx18_vapi(cx, CX18_APU_START, 2, CX18_APU_ENCODING_METHOD_MPEG|0xb9, 0); + cx18_vapi(cx, CX18_APU_RESETAI, 0); + cx18_vapi(cx, CX18_APU_STOP, 1, CX18_APU_ENCODING_METHOD_MPEG); + vf.tuner = 0; vf.type = V4L2_TUNER_ANALOG_TV; vf.frequency = 6400; /* the tuner 'baseline' frequency */ |