diff options
Diffstat (limited to 'drivers/media/video/ivtv/ivtv-driver.h')
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.h | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h index 2c27515d8731..332d16415ebf 100644 --- a/drivers/media/video/ivtv/ivtv-driver.h +++ b/drivers/media/video/ivtv/ivtv-driver.h | |||
@@ -180,11 +180,11 @@ extern int ivtv_debug; | |||
180 | #define IVTV_MAX_PGM_INDEX (400) | 180 | #define IVTV_MAX_PGM_INDEX (400) |
181 | 181 | ||
182 | struct ivtv_options { | 182 | struct ivtv_options { |
183 | int kilobytes[IVTV_MAX_STREAMS]; /* Size in kilobytes of each stream */ | 183 | int kilobytes[IVTV_MAX_STREAMS]; /* size in kilobytes of each stream */ |
184 | int cardtype; /* force card type on load */ | 184 | int cardtype; /* force card type on load */ |
185 | int tuner; /* set tuner on load */ | 185 | int tuner; /* set tuner on load */ |
186 | int radio; /* enable/disable radio */ | 186 | int radio; /* enable/disable radio */ |
187 | int newi2c; /* New I2C algorithm */ | 187 | int newi2c; /* new I2C algorithm */ |
188 | }; | 188 | }; |
189 | 189 | ||
190 | /* ivtv-specific mailbox template */ | 190 | /* ivtv-specific mailbox template */ |
@@ -231,10 +231,10 @@ struct ivtv_mailbox_data { | |||
231 | #define IVTV_F_I_DMA 0 /* DMA in progress */ | 231 | #define IVTV_F_I_DMA 0 /* DMA in progress */ |
232 | #define IVTV_F_I_UDMA 1 /* UDMA in progress */ | 232 | #define IVTV_F_I_UDMA 1 /* UDMA in progress */ |
233 | #define IVTV_F_I_UDMA_PENDING 2 /* UDMA pending */ | 233 | #define IVTV_F_I_UDMA_PENDING 2 /* UDMA pending */ |
234 | #define IVTV_F_I_SPEED_CHANGE 3 /* A speed change is in progress */ | 234 | #define IVTV_F_I_SPEED_CHANGE 3 /* a speed change is in progress */ |
235 | #define IVTV_F_I_EOS 4 /* End of encoder stream reached */ | 235 | #define IVTV_F_I_EOS 4 /* end of encoder stream reached */ |
236 | #define IVTV_F_I_RADIO_USER 5 /* The radio tuner is selected */ | 236 | #define IVTV_F_I_RADIO_USER 5 /* the radio tuner is selected */ |
237 | #define IVTV_F_I_DIG_RST 6 /* Reset digitizer */ | 237 | #define IVTV_F_I_DIG_RST 6 /* reset digitizer */ |
238 | #define IVTV_F_I_DEC_YUV 7 /* YUV instead of MPG is being decoded */ | 238 | #define IVTV_F_I_DEC_YUV 7 /* YUV instead of MPG is being decoded */ |
239 | #define IVTV_F_I_UPDATE_CC 9 /* CC should be updated */ | 239 | #define IVTV_F_I_UPDATE_CC 9 /* CC should be updated */ |
240 | #define IVTV_F_I_UPDATE_WSS 10 /* WSS should be updated */ | 240 | #define IVTV_F_I_UPDATE_WSS 10 /* WSS should be updated */ |
@@ -242,7 +242,7 @@ struct ivtv_mailbox_data { | |||
242 | #define IVTV_F_I_DECODING_YUV 12 /* this stream is YUV frame decoding */ | 242 | #define IVTV_F_I_DECODING_YUV 12 /* this stream is YUV frame decoding */ |
243 | #define IVTV_F_I_ENC_PAUSED 13 /* the encoder is paused */ | 243 | #define IVTV_F_I_ENC_PAUSED 13 /* the encoder is paused */ |
244 | #define IVTV_F_I_VALID_DEC_TIMINGS 14 /* last_dec_timing is valid */ | 244 | #define IVTV_F_I_VALID_DEC_TIMINGS 14 /* last_dec_timing is valid */ |
245 | #define IVTV_F_I_HAVE_WORK 15 /* Used in the interrupt handler: there is work to be done */ | 245 | #define IVTV_F_I_HAVE_WORK 15 /* used in the interrupt handler: there is work to be done */ |
246 | #define IVTV_F_I_WORK_HANDLER_VBI 16 /* there is work to be done for VBI */ | 246 | #define IVTV_F_I_WORK_HANDLER_VBI 16 /* there is work to be done for VBI */ |
247 | #define IVTV_F_I_WORK_HANDLER_YUV 17 /* there is work to be done for YUV */ | 247 | #define IVTV_F_I_WORK_HANDLER_YUV 17 /* there is work to be done for YUV */ |
248 | #define IVTV_F_I_WORK_HANDLER_PIO 18 /* there is work to be done for PIO */ | 248 | #define IVTV_F_I_WORK_HANDLER_PIO 18 /* there is work to be done for PIO */ |
@@ -295,19 +295,18 @@ struct ivtv_buffer { | |||
295 | unsigned short b_flags; | 295 | unsigned short b_flags; |
296 | unsigned short dma_xfer_cnt; | 296 | unsigned short dma_xfer_cnt; |
297 | char *buf; | 297 | char *buf; |
298 | |||
299 | u32 bytesused; | 298 | u32 bytesused; |
300 | u32 readpos; | 299 | u32 readpos; |
301 | }; | 300 | }; |
302 | 301 | ||
303 | struct ivtv_queue { | 302 | struct ivtv_queue { |
304 | struct list_head list; | 303 | struct list_head list; /* the list of buffers in this queue */ |
305 | u32 buffers; | 304 | u32 buffers; /* number of buffers in this queue */ |
306 | u32 length; | 305 | u32 length; /* total number of bytes of available buffer space */ |
307 | u32 bytesused; | 306 | u32 bytesused; /* total number of bytes used in this queue */ |
308 | }; | 307 | }; |
309 | 308 | ||
310 | struct ivtv; /* forward reference */ | 309 | struct ivtv; /* forward reference */ |
311 | 310 | ||
312 | struct ivtv_stream { | 311 | struct ivtv_stream { |
313 | /* These first four fields are always set, even if the stream | 312 | /* These first four fields are always set, even if the stream |
@@ -318,11 +317,9 @@ struct ivtv_stream { | |||
318 | int type; /* stream type */ | 317 | int type; /* stream type */ |
319 | 318 | ||
320 | u32 id; | 319 | u32 id; |
321 | spinlock_t qlock; /* locks access to the queues */ | 320 | spinlock_t qlock; /* locks access to the queues */ |
322 | unsigned long s_flags; /* status flags, see above */ | 321 | unsigned long s_flags; /* status flags, see above */ |
323 | int dma; /* can be PCI_DMA_TODEVICE, | 322 | int dma; /* can be PCI_DMA_TODEVICE, PCI_DMA_FROMDEVICE or PCI_DMA_NONE */ |
324 | PCI_DMA_FROMDEVICE or | ||
325 | PCI_DMA_NONE */ | ||
326 | u32 pending_offset; | 323 | u32 pending_offset; |
327 | u32 pending_backup; | 324 | u32 pending_backup; |
328 | u64 pending_pts; | 325 | u64 pending_pts; |
@@ -365,10 +362,10 @@ struct ivtv_stream { | |||
365 | }; | 362 | }; |
366 | 363 | ||
367 | struct ivtv_open_id { | 364 | struct ivtv_open_id { |
368 | u32 open_id; | 365 | u32 open_id; /* unique ID for this file descriptor */ |
369 | int type; | 366 | int type; /* stream type */ |
370 | int yuv_frames; | 367 | int yuv_frames; /* 1: started OUT_UDMA_YUV output mode */ |
371 | enum v4l2_priority prio; | 368 | enum v4l2_priority prio; /* priority */ |
372 | struct ivtv *itv; | 369 | struct ivtv *itv; |
373 | }; | 370 | }; |
374 | 371 | ||
@@ -493,6 +490,14 @@ struct yuv_playback_info | |||
493 | 490 | ||
494 | /* VBI data */ | 491 | /* VBI data */ |
495 | struct vbi_info { | 492 | struct vbi_info { |
493 | /* VBI general fixed card data */ | ||
494 | u32 raw_decoder_line_size; /* raw VBI line size from digitizer */ | ||
495 | u8 raw_decoder_sav_odd_field; /* raw VBI Start Active Video digitizer code of odd field */ | ||
496 | u8 raw_decoder_sav_even_field; /* raw VBI Start Active Video digitizer code of even field */ | ||
497 | u32 sliced_decoder_line_size; /* sliced VBI line size from digitizer */ | ||
498 | u8 sliced_decoder_sav_odd_field; /* sliced VBI Start Active Video digitizer code of odd field */ | ||
499 | u8 sliced_decoder_sav_even_field; /* sliced VBI Start Active Video digitizer code of even field */ | ||
500 | |||
496 | u32 dec_start; | 501 | u32 dec_start; |
497 | u32 enc_start, enc_size; | 502 | u32 enc_start, enc_size; |
498 | int fpi; | 503 | int fpi; |
@@ -506,12 +511,6 @@ struct vbi_info { | |||
506 | int wss; | 511 | int wss; |
507 | u8 wss_found; | 512 | u8 wss_found; |
508 | u8 wss_no_update; | 513 | u8 wss_no_update; |
509 | u32 raw_decoder_line_size; | ||
510 | u8 raw_decoder_sav_odd_field; | ||
511 | u8 raw_decoder_sav_even_field; | ||
512 | u32 sliced_decoder_line_size; | ||
513 | u8 sliced_decoder_sav_odd_field; | ||
514 | u8 sliced_decoder_sav_even_field; | ||
515 | struct v4l2_format in; | 514 | struct v4l2_format in; |
516 | /* convenience pointer to sliced struct in vbi_in union */ | 515 | /* convenience pointer to sliced struct in vbi_in union */ |
517 | struct v4l2_sliced_vbi_format *sliced_in; | 516 | struct v4l2_sliced_vbi_format *sliced_in; |
@@ -592,8 +591,7 @@ struct ivtv { | |||
592 | 591 | ||
593 | /* Locking */ | 592 | /* Locking */ |
594 | spinlock_t lock; /* lock access to this struct */ | 593 | spinlock_t lock; /* lock access to this struct */ |
595 | /* mutex used to serialize open/close/start/stop/ioctl operations */ | 594 | struct mutex serialize_lock; /* mutex used to serialize open/close/start/stop/ioctl operations */ |
596 | struct mutex serialize_lock; | ||
597 | 595 | ||
598 | 596 | ||
599 | /* Streams */ | 597 | /* Streams */ |
@@ -616,7 +614,7 @@ struct ivtv { | |||
616 | int dma_retries; /* current DMA retry attempt */ | 614 | int dma_retries; /* current DMA retry attempt */ |
617 | struct ivtv_user_dma udma; /* user based DMA for OSD */ | 615 | struct ivtv_user_dma udma; /* user based DMA for OSD */ |
618 | struct timer_list dma_timer; /* timer used to catch unfinished DMAs */ | 616 | struct timer_list dma_timer; /* timer used to catch unfinished DMAs */ |
619 | u32 last_vsync_frame; /* last seen vsync field */ | 617 | u32 last_vsync_field; /* last seen vsync field */ |
620 | wait_queue_head_t dma_waitq; /* wake up when the current DMA is finished */ | 618 | wait_queue_head_t dma_waitq; /* wake up when the current DMA is finished */ |
621 | wait_queue_head_t eos_waitq; /* wake up when EOS arrives */ | 619 | wait_queue_head_t eos_waitq; /* wake up when EOS arrives */ |
622 | wait_queue_head_t event_waitq; /* wake up when the next decoder event arrives */ | 620 | wait_queue_head_t event_waitq; /* wake up when the next decoder event arrives */ |