diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-15 14:01:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-15 14:01:53 -0400 |
commit | ed75ded7dd3fdb647df4efefc5d11158e3d182be (patch) | |
tree | b1deddc70e76c03c1416add83c90160cefc5ac6f /drivers/media/video/cx25840/cx25840-vbi.c | |
parent | e5a301ee02e53acf000bb8331587129930bc2290 (diff) | |
parent | 5570dd02ca7fb2e28d32516fae05031d48711aa5 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
V4L/DVB (4750): AGC command1/2 is board specific
V4L/DVB (4748): Fixed oops for Nova-T USB2
V4L/DVB (4746): HM12 is YUV 4:2:0, not YUV 4:1:1
V4L/DVB (4744): The Samsung TCPN2121P30A does not have a tda9887
V4L/DVB (4743): Fix oops in VIDIOC_G_PARM
V4L/DVB (4742): Drivers/media/video: handle sysfs errors
V4L/DVB (4741): {ov511,stv680}: handle sysfs errors
V4L/DVB (4740): Fixed an if-block to avoid floating with debug-messages
V4L/DVB (4739): SECAM support for saa7113 into saa7115
V4L/DVB (4738): Bt8xx/dvb-bt8xx.c: check kmalloc() return value.
V4L/DVB (4734): Tda826x: fix frontend selection for dvb_attach
V4L/DVB (4733): Tda10086: fix frontend selection for dvb_attach
V4L/DVB (4732): Fix spelling error in Kconfig help text for DVB_CORE_ATTACH
V4L/DVB (4731a): Kconfig: restore pvrusb2 menu items
V4L/DVB (4729): Fix VIDIOC_G_FMT for NTSC in cx25840.
V4L/DVB (4727): Support status readout for saa713x based FM radio
V4L/DVB (4725): Fix vivi compile on parisc
V4L/DVB (4692): Add WinTV-HVR3000 DVB-T support
Diffstat (limited to 'drivers/media/video/cx25840/cx25840-vbi.c')
-rw-r--r-- | drivers/media/video/cx25840/cx25840-vbi.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/drivers/media/video/cx25840/cx25840-vbi.c b/drivers/media/video/cx25840/cx25840-vbi.c index 48014a254e15..f85f2084324f 100644 --- a/drivers/media/video/cx25840/cx25840-vbi.c +++ b/drivers/media/video/cx25840/cx25840-vbi.c | |||
@@ -235,6 +235,7 @@ int cx25840_vbi(struct i2c_client *client, unsigned int cmd, void *arg) | |||
235 | 0, 0, V4L2_SLICED_VPS, 0, 0, /* 9 */ | 235 | 0, 0, V4L2_SLICED_VPS, 0, 0, /* 9 */ |
236 | 0, 0, 0, 0 | 236 | 0, 0, 0, 0 |
237 | }; | 237 | }; |
238 | int is_pal = !(cx25840_get_v4lstd(client) & V4L2_STD_525_60); | ||
238 | int i; | 239 | int i; |
239 | 240 | ||
240 | fmt = arg; | 241 | fmt = arg; |
@@ -246,13 +247,25 @@ int cx25840_vbi(struct i2c_client *client, unsigned int cmd, void *arg) | |||
246 | if ((cx25840_read(client, 0x404) & 0x10) == 0) | 247 | if ((cx25840_read(client, 0x404) & 0x10) == 0) |
247 | break; | 248 | break; |
248 | 249 | ||
249 | for (i = 7; i <= 23; i++) { | 250 | if (is_pal) { |
250 | u8 v = cx25840_read(client, 0x424 + i - 7); | 251 | for (i = 7; i <= 23; i++) { |
252 | u8 v = cx25840_read(client, 0x424 + i - 7); | ||
253 | |||
254 | svbi->service_lines[0][i] = lcr2vbi[v >> 4]; | ||
255 | svbi->service_lines[1][i] = lcr2vbi[v & 0xf]; | ||
256 | svbi->service_set |= | ||
257 | svbi->service_lines[0][i] | svbi->service_lines[1][i]; | ||
258 | } | ||
259 | } | ||
260 | else { | ||
261 | for (i = 10; i <= 21; i++) { | ||
262 | u8 v = cx25840_read(client, 0x424 + i - 10); | ||
251 | 263 | ||
252 | svbi->service_lines[0][i] = lcr2vbi[v >> 4]; | 264 | svbi->service_lines[0][i] = lcr2vbi[v >> 4]; |
253 | svbi->service_lines[1][i] = lcr2vbi[v & 0xf]; | 265 | svbi->service_lines[1][i] = lcr2vbi[v & 0xf]; |
254 | svbi->service_set |= | 266 | svbi->service_set |= |
255 | svbi->service_lines[0][i] | svbi->service_lines[1][i]; | 267 | svbi->service_lines[0][i] | svbi->service_lines[1][i]; |
268 | } | ||
256 | } | 269 | } |
257 | break; | 270 | break; |
258 | } | 271 | } |