diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2010-03-14 08:57:30 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-05-19 11:58:45 -0400 |
commit | 32cd527f59f8aa8549067a2c5f989b736f7da79a (patch) | |
tree | 2552bd0efffc5bd21011e1f139c1b7a5c9a27390 /drivers/media/video/cx18 | |
parent | b26d6e21788864039bfb24840a668f2cb0848930 (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.c | 6 | ||||
-rw-r--r-- | drivers/media/video/cx18/cx18-vbi.c | 2 |
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 | ||
1404 | static const struct v4l2_subdev_video_ops cx18_av_video_ops = { | 1404 | static 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 | ||
1411 | static const struct v4l2_subdev_vbi_ops cx18_av_vbi_ops = { | ||
1412 | .decode_vbi_line = cx18_av_decode_vbi_line, | ||
1413 | }; | ||
1414 | |||
1412 | static const struct v4l2_subdev_ops cx18_av_ops = { | 1415 | static 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 | ||
1419 | int cx18_av_probe(struct cx18 *cx) | 1423 | int 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; |