diff options
Diffstat (limited to 'linux/drivers/media/video/tda9887.c')
-rw-r--r-- | linux/drivers/media/video/tda9887.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/linux/drivers/media/video/tda9887.c b/linux/drivers/media/video/tda9887.c index 4d07eb2b6..f71b1c17f 100644 --- a/linux/drivers/media/video/tda9887.c +++ b/linux/drivers/media/video/tda9887.c @@ -178,6 +178,14 @@ static struct tvnorm tvnorms[] = { .e = ( cAudioIF_6_5 | cVideoIF_38_90 ), },{ + .std = V4L2_STD_SECAM_D | V4L2_STD_SECAM_K, + .name = "SECAM-DK", + .b = ( cNegativeFmTV ), + .c = ( cDeemphasisON | + cDeemphasis50 ), + .e = ( cAudioIF_6_5 | + cVideoIF_38_00 ), + },{ .std = V4L2_STD_NTSC_M, .name = "NTSC-M", .b = ( cNegativeFmTV ), @@ -413,11 +421,13 @@ static int tda9887_set_pinnacle(struct tda9887 *t, char *buf) static char *pal = "-"; MODULE_PARM(pal,"s"); +static char *secam = "-"; +MODULE_PARM(secam,"s"); static int tda9887_fixup_std(struct tda9887 *t) { + /* get more precise norm info from insmod option */ if ((t->std & V4L2_STD_PAL) == V4L2_STD_PAL) { - /* get more precise norm info from insmod option */ switch (pal[0]) { case 'b': case 'B': @@ -440,6 +450,22 @@ static int tda9887_fixup_std(struct tda9887 *t) break; } } + if ((t->std & V4L2_STD_SECAM) == V4L2_STD_SECAM) { + switch (secam[0]) { + case 'd': + case 'D': + case 'k': + case 'K': + dprintk("insmod fixup: SECAM => SECAM-DK\n"); + t->std = V4L2_STD_SECAM_D | V4L2_STD_SECAM_K; + break; + case 'l': + case 'L': + dprintk("insmod fixup: SECAM => SECAM-L\n"); + t->std = V4L2_STD_SECAM_L; + break; + } + } return 0; } |