summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/tda9887.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/video/tda9887.c')
-rw-r--r--linux/drivers/media/video/tda9887.c28
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;
}