diff options
Diffstat (limited to 'drivers/media/video/cx18')
-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) | |||
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 */ |