aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/au0828/au0828.h
diff options
context:
space:
mode:
authorDevin Heitmueller <dheitmueller@kernellabs.com>2010-05-29 16:18:45 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-08-02 13:48:53 -0400
commit7f8eacd2162a39ca7fc1240883118a786f147ccb (patch)
tree9bf9cd8e95c6593c04da8c37a8e836c5bb8f8274 /drivers/media/video/au0828/au0828.h
parentfab9bfbed22f91f271a93a3dfa142179a2278935 (diff)
V4L/DVB: Add closed captioning support for the HVR-950q
Add NTSC closed captioning support for au0828 based products. Note that this also required reworking the locking to support streaming on both the video and VBI devices (the logic for which I copied from my changes made to the em28xx several months ago). This work was sponsored by GetWellNetwork Inc. Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/au0828/au0828.h')
-rw-r--r--drivers/media/video/au0828/au0828.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/media/video/au0828/au0828.h b/drivers/media/video/au0828/au0828.h
index 207f32dec6a..9905bc4f5f5 100644
--- a/drivers/media/video/au0828/au0828.h
+++ b/drivers/media/video/au0828/au0828.h
@@ -60,6 +60,10 @@
60 60
61#define AU0828_MAX_INPUT 4 61#define AU0828_MAX_INPUT 4
62 62
63/* au0828 resource types (used for res_get/res_lock etc */
64#define AU0828_RESOURCE_VIDEO 0x01
65#define AU0828_RESOURCE_VBI 0x02
66
63enum au0828_itype { 67enum au0828_itype {
64 AU0828_VMUX_UNDEFINED = 0, 68 AU0828_VMUX_UNDEFINED = 0,
65 AU0828_VMUX_COMPOSITE, 69 AU0828_VMUX_COMPOSITE,
@@ -115,8 +119,10 @@ enum au0828_dev_state {
115 119
116struct au0828_fh { 120struct au0828_fh {
117 struct au0828_dev *dev; 121 struct au0828_dev *dev;
118 unsigned int stream_on:1; /* Locks streams */ 122 unsigned int resources;
123
119 struct videobuf_queue vb_vidq; 124 struct videobuf_queue vb_vidq;
125 struct videobuf_queue vb_vbiq;
120 enum v4l2_buf_type type; 126 enum v4l2_buf_type type;
121}; 127};
122 128
@@ -145,7 +151,8 @@ struct au0828_usb_isoc_ctl {
145 int tmp_buf_len; 151 int tmp_buf_len;
146 152
147 /* Stores already requested buffers */ 153 /* Stores already requested buffers */
148 struct au0828_buffer *buf; 154 struct au0828_buffer *buf;
155 struct au0828_buffer *vbi_buf;
149 156
150 /* Stores the number of received fields */ 157 /* Stores the number of received fields */
151 int nfields; 158 int nfields;
@@ -194,11 +201,14 @@ struct au0828_dev {
194 /* Analog */ 201 /* Analog */
195 struct v4l2_device v4l2_dev; 202 struct v4l2_device v4l2_dev;
196 int users; 203 int users;
197 unsigned int stream_on:1; /* Locks streams */ 204 unsigned int resources; /* resources in use */
198 struct video_device *vdev; 205 struct video_device *vdev;
199 struct video_device *vbi_dev; 206 struct video_device *vbi_dev;
200 int width; 207 int width;
201 int height; 208 int height;
209 int vbi_width;
210 int vbi_height;
211 u32 vbi_read;
202 u32 field_size; 212 u32 field_size;
203 u32 frame_size; 213 u32 frame_size;
204 u32 bytesperline; 214 u32 bytesperline;
@@ -219,6 +229,7 @@ struct au0828_dev {
219 229
220 /* Isoc control struct */ 230 /* Isoc control struct */
221 struct au0828_dmaqueue vidq; 231 struct au0828_dmaqueue vidq;
232 struct au0828_dmaqueue vbiq;
222 struct au0828_usb_isoc_ctl isoc_ctl; 233 struct au0828_usb_isoc_ctl isoc_ctl;
223 spinlock_t slock; 234 spinlock_t slock;
224 235
@@ -278,6 +289,9 @@ void au0828_analog_unregister(struct au0828_dev *dev);
278extern int au0828_dvb_register(struct au0828_dev *dev); 289extern int au0828_dvb_register(struct au0828_dev *dev);
279extern void au0828_dvb_unregister(struct au0828_dev *dev); 290extern void au0828_dvb_unregister(struct au0828_dev *dev);
280 291
292/* au0828-vbi.c */
293extern struct videobuf_queue_ops au0828_vbi_qops;
294
281#define dprintk(level, fmt, arg...)\ 295#define dprintk(level, fmt, arg...)\
282 do { if (au0828_debug & level)\ 296 do { if (au0828_debug & level)\
283 printk(KERN_DEBUG DRIVER_NAME "/0: " fmt, ## arg);\ 297 printk(KERN_DEBUG DRIVER_NAME "/0: " fmt, ## arg);\