Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 19954
b: refs/heads/master
c: 0dfd812
h: refs/heads/master
v: v3
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Feb 7, 2006
1 parent f3bcde0 commit 3b18b97
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 34 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a77a922fcc56fe44fd8f65c041a52ff48474fafe
refs/heads/master: 0dfd812d4b2afc797310943b451608d347854e76
2 changes: 1 addition & 1 deletion trunk/drivers/media/video/bttv-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ const struct bttv_tvnorm bttv_tvnorms[] = {
we can capture, of the first and second field. */
.vbistart = { 7,320 },
},{
.v4l2_id = V4L2_STD_NTSC_M,
.v4l2_id = V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_KR,
.name = "NTSC",
.Fsc = 28636363,
.swidth = 768,
Expand Down
50 changes: 20 additions & 30 deletions trunk/drivers/media/video/cx25840/cx25840-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,33 +220,23 @@ static void input_change(struct i2c_client *client)
cx25840_write(client, 0x808, 0xff);
cx25840_write(client, 0x80b, 0x10);
} else if (std & V4L2_STD_NTSC) {
/* NTSC */
if (state->pvr150_workaround) {
/* Certain Hauppauge PVR150 models have a hardware bug
that causes audio to drop out. For these models the
audio standard must be set explicitly.
To be precise: it affects cards with tuner models
85, 99 and 112 (model numbers from tveeprom). */
if (std == V4L2_STD_NTSC_M_JP) {
/* Japan uses EIAJ audio standard */
cx25840_write(client, 0x808, 0x2f);
} else {
/* Others use the BTSC audio standard */
cx25840_write(client, 0x808, 0x1f);
}
/* South Korea uses the A2-M (aka Zweiton M) audio
standard, and should set 0x808 to 0x3f, but I don't
know how to detect this. */
} else if (std == V4L2_STD_NTSC_M_JP) {
/* Certain Hauppauge PVR150 models have a hardware bug
that causes audio to drop out. For these models the
audio standard must be set explicitly.
To be precise: it affects cards with tuner models
85, 99 and 112 (model numbers from tveeprom). */
int hw_fix = state->pvr150_workaround;

if (std == V4L2_STD_NTSC_M_JP) {
/* Japan uses EIAJ audio standard */
cx25840_write(client, 0x808, 0xf7);
cx25840_write(client, 0x808, hw_fix ? 0x2f : 0xf7);
} else if (std == V4L2_STD_NTSC_M_KR) {
/* South Korea uses A2 audio standard */
cx25840_write(client, 0x808, hw_fix ? 0x3f : 0xf8);
} else {
/* Others use the BTSC audio standard */
cx25840_write(client, 0x808, 0xf6);
cx25840_write(client, 0x808, hw_fix ? 0x1f : 0xf6);
}
/* South Korea uses the A2-M (aka Zweiton M) audio standard,
and should set 0x808 to 0xf8, but I don't know how to
detect this. */
cx25840_write(client, 0x80b, 0x00);
}

Expand Down Expand Up @@ -330,17 +320,17 @@ static int set_v4lstd(struct i2c_client *client, v4l2_std_id std)
u8 fmt=0; /* zero is autodetect */

/* First tests should be against specific std */
if (std & V4L2_STD_NTSC_M_JP) {
if (std == V4L2_STD_NTSC_M_JP) {
fmt=0x2;
} else if (std & V4L2_STD_NTSC_443) {
} else if (std == V4L2_STD_NTSC_443) {
fmt=0x3;
} else if (std & V4L2_STD_PAL_M) {
} else if (std == V4L2_STD_PAL_M) {
fmt=0x5;
} else if (std & V4L2_STD_PAL_N) {
} else if (std == V4L2_STD_PAL_N) {
fmt=0x6;
} else if (std & V4L2_STD_PAL_Nc) {
} else if (std == V4L2_STD_PAL_Nc) {
fmt=0x7;
} else if (std & V4L2_STD_PAL_60) {
} else if (std == V4L2_STD_PAL_60) {
fmt=0x8;
} else {
/* Then, test against generic ones */
Expand Down Expand Up @@ -369,7 +359,7 @@ v4l2_std_id cx25840_get_v4lstd(struct i2c_client * client)
}

switch (fmt) {
case 0x1: return V4L2_STD_NTSC_M;
case 0x1: return V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_KR;
case 0x2: return V4L2_STD_NTSC_M_JP;
case 0x3: return V4L2_STD_NTSC_443;
case 0x4: return V4L2_STD_PAL;
Expand Down
7 changes: 6 additions & 1 deletion trunk/drivers/media/video/tda9887.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ static struct tvnorm tvnorms[] = {
cAudioIF_6_5 |
cVideoIF_38_90 ),
},{
.std = V4L2_STD_NTSC_M,
.std = V4L2_STD_NTSC_M | V4L2_STD_NTSC_M_KR,
.name = "NTSC-M",
.b = ( cNegativeFmTV |
cQSS ),
Expand Down Expand Up @@ -619,6 +619,11 @@ static int tda9887_fixup_std(struct tda9887 *t)
tda9887_dbg("insmod fixup: NTSC => NTSC_M_JP\n");
t->std = V4L2_STD_NTSC_M_JP;
break;
case 'k':
case 'K':
tda9887_dbg("insmod fixup: NTSC => NTSC_M_KR\n");
t->std = V4L2_STD_NTSC_M_KR;
break;
case '-':
/* default parameter, do nothing */
break;
Expand Down
5 changes: 5 additions & 0 deletions trunk/drivers/media/video/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,11 @@ static int tuner_fixup_std(struct tuner *t)
tuner_dbg("insmod fixup: NTSC => NTSC_M_JP\n");
t->std = V4L2_STD_NTSC_M_JP;
break;
case 'k':
case 'K':
tuner_dbg("insmod fixup: NTSC => NTSC_M_KR\n");
t->std = V4L2_STD_NTSC_M_KR;
break;
case '-':
/* default parameter, do nothing */
break;
Expand Down
4 changes: 3 additions & 1 deletion trunk/include/linux/videodev2.h
Original file line number Diff line number Diff line change
Expand Up @@ -628,6 +628,7 @@ typedef __u64 v4l2_std_id;
#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000)
#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000)
#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000)
#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000)

#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
Expand Down Expand Up @@ -660,7 +661,8 @@ typedef __u64 v4l2_std_id;
V4L2_STD_PAL_H |\
V4L2_STD_PAL_I)
#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
V4L2_STD_NTSC_M_JP)
V4L2_STD_NTSC_M_JP |\
V4L2_STD_NTSC_M_KR)
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
V4L2_STD_SECAM_K |\
V4L2_STD_SECAM_K1)
Expand Down

0 comments on commit 3b18b97

Please sign in to comment.