diff options
-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 | } |