aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx18
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2010-03-14 08:57:30 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-19 11:58:45 -0400
commit32cd527f59f8aa8549067a2c5f989b736f7da79a (patch)
tree2552bd0efffc5bd21011e1f139c1b7a5c9a27390 /drivers/media/video/cx18
parentb26d6e21788864039bfb24840a668f2cb0848930 (diff)
V4L/DVB: v4l: move vbi-specific video ops to a new vbi ops struct
Only a relatively small number of video receivers and transmitters actually support VBI. So start moving the vbi specific ops to an ops struct of their own. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18')
-rw-r--r--drivers/media/video/cx18/cx18-av-core.c6
-rw-r--r--drivers/media/video/cx18/cx18-vbi.c2
2 files changed, 6 insertions, 2 deletions
diff --git a/drivers/media/video/cx18/cx18-av-core.c b/drivers/media/video/cx18/cx18-av-core.c
index 3ce45297e56a..4454997c1bf4 100644
--- a/drivers/media/video/cx18/cx18-av-core.c
+++ b/drivers/media/video/cx18/cx18-av-core.c
@@ -1403,17 +1403,21 @@ static const struct v4l2_subdev_audio_ops cx18_av_audio_ops = {
1403 1403
1404static const struct v4l2_subdev_video_ops cx18_av_video_ops = { 1404static const struct v4l2_subdev_video_ops cx18_av_video_ops = {
1405 .s_routing = cx18_av_s_video_routing, 1405 .s_routing = cx18_av_s_video_routing,
1406 .decode_vbi_line = cx18_av_decode_vbi_line,
1407 .s_stream = cx18_av_s_stream, 1406 .s_stream = cx18_av_s_stream,
1408 .g_fmt = cx18_av_g_fmt, 1407 .g_fmt = cx18_av_g_fmt,
1409 .s_fmt = cx18_av_s_fmt, 1408 .s_fmt = cx18_av_s_fmt,
1410}; 1409};
1411 1410
1411static const struct v4l2_subdev_vbi_ops cx18_av_vbi_ops = {
1412 .decode_vbi_line = cx18_av_decode_vbi_line,
1413};
1414
1412static const struct v4l2_subdev_ops cx18_av_ops = { 1415static const struct v4l2_subdev_ops cx18_av_ops = {
1413 .core = &cx18_av_general_ops, 1416 .core = &cx18_av_general_ops,
1414 .tuner = &cx18_av_tuner_ops, 1417 .tuner = &cx18_av_tuner_ops,
1415 .audio = &cx18_av_audio_ops, 1418 .audio = &cx18_av_audio_ops,
1416 .video = &cx18_av_video_ops, 1419 .video = &cx18_av_video_ops,
1420 .vbi = &cx18_av_vbi_ops,
1417}; 1421};
1418 1422
1419int cx18_av_probe(struct cx18 *cx) 1423int cx18_av_probe(struct cx18 *cx)
diff --git a/drivers/media/video/cx18/cx18-vbi.c b/drivers/media/video/cx18/cx18-vbi.c
index 574c1c6974f8..582227522cf0 100644
--- a/drivers/media/video/cx18/cx18-vbi.c
+++ b/drivers/media/video/cx18/cx18-vbi.c
@@ -174,7 +174,7 @@ static u32 compress_sliced_buf(struct cx18 *cx, u8 *buf, u32 size,
174 p[3] != sliced_vbi_eav_rp[1])) 174 p[3] != sliced_vbi_eav_rp[1]))
175 continue; 175 continue;
176 vbi.p = p + 4; 176 vbi.p = p + 4;
177 v4l2_subdev_call(cx->sd_av, video, decode_vbi_line, &vbi); 177 v4l2_subdev_call(cx->sd_av, vbi, decode_vbi_line, &vbi);
178 if (vbi.type) { 178 if (vbi.type) {
179 cx->vbi.sliced_data[line].id = vbi.type; 179 cx->vbi.sliced_data[line].id = vbi.type;
180 cx->vbi.sliced_data[line].field = vbi.is_second_field; 180 cx->vbi.sliced_data[line].field = vbi.is_second_field;