[pvrusb2] Hauppauge HVR-1900 - PAL-Nc, no audio
vdb at picaros.org
vdb at picaros.org
Sat Apr 13 09:46:22 CDT 2013
> Our regular TV (which is both NTSC- and PAL-capable) displays "PAL-N" and "SAP" when changing channels (not very technical I know!), and my testing (included below) would seem to point to PAL-Nc being the correct variation.
The patch below might work, but it needs a kernel or module recompilation.
Signed-off-by: Servaas Vandenberghe
--- linux-3.5.4/drivers/media/video/cx25840/cx25840-core-orig.c 2012-09-15 00:28:08.000000000 +0200
+++ linux-3.5.4/drivers/media/video/cx25840/cx25840-core.c 2013-04-13 16:22:59.000000000 +0200
@@ -945,8 +945,7 @@ static void input_change(struct i2c_clie
if (state->radio) {
cx25840_write(client, 0x808, 0xf9);
cx25840_write(client, 0x80b, 0x00);
- }
- else if (std & V4L2_STD_525_60) {
+ } else if (std & V4L2_STD_MN) {
/* Certain Hauppauge PVR150 models have a hardware bug
that causes audio to drop out. For these models the
audio standard must be set explicitly.
@@ -965,31 +964,32 @@ static void input_change(struct i2c_clie
cx25840_write(client, 0x808, hw_fix ? 0x1f : 0xf6);
}
cx25840_write(client, 0x80b, 0x00);
- } else if (std & V4L2_STD_PAL) {
- /* Autodetect audio standard and audio system */
- cx25840_write(client, 0x808, 0xff);
- /* Since system PAL-L is pretty much non-existent and
- not used by any public broadcast network, force
- 6.5 MHz carrier to be interpreted as System DK,
- this avoids DK audio detection instability */
- cx25840_write(client, 0x80b, 0x00);
- } else if (std & V4L2_STD_SECAM) {
+ } else {
/* Autodetect audio standard and audio system */
cx25840_write(client, 0x808, 0xff);
- /* If only one of SECAM-DK / SECAM-L is required, then force
- 6.5MHz carrier, else autodetect it */
- if ((std & V4L2_STD_SECAM_DK) &&
- !(std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC))) {
- /* 6.5 MHz carrier to be interpreted as System DK */
+ if (std & V4L2_STD_SECAM) {
+ /* If only one of SECAM-DK / SECAM-L is required, then force
+ 6.5MHz carrier, else autodetect it */
+ if ((std & V4L2_STD_SECAM_DK) &&
+ !(std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC))) {
+ /* 6.5 MHz carrier to be interpreted as System DK */
+ cx25840_write(client, 0x80b, 0x00);
+ } else if (!(std & V4L2_STD_SECAM_DK) &&
+ (std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC))) {
+ /* 6.5 MHz carrier to be interpreted as System L */
+ cx25840_write(client, 0x80b, 0x08);
+ } else {
+ /* 6.5 MHz carrier to be autodetected */
+ cx25840_write(client, 0x80b, 0x10);
+ }
+ } else {
+ /* std & (V4L2_STD_PAL | V4L2_STD_PAL_60 | V4L2_STD_NTSC_443)) */
+ /* Since system PAL-L is pretty much non-existent and
+ not used by any public broadcast network, force
+ 6.5 MHz carrier to be interpreted as System DK,
+ this avoids DK audio detection instability */
cx25840_write(client, 0x80b, 0x00);
- } else if (!(std & V4L2_STD_SECAM_DK) &&
- (std & (V4L2_STD_SECAM_L | V4L2_STD_SECAM_LC))) {
- /* 6.5 MHz carrier to be interpreted as System L */
- cx25840_write(client, 0x80b, 0x08);
- } else {
- /* 6.5 MHz carrier to be autodetected */
- cx25840_write(client, 0x80b, 0x10);
- }
+ }
}
cx25840_and_or(client, 0x810, ~0x01, 0);
More information about the pvrusb2
mailing list