aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/ivtv/ivtv-driver.h
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-03-10 04:52:02 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 14:44:24 -0400
commit1e13f9e3f1501cc167e40a2adf07e6e4705cb331 (patch)
treed55c1c1a50b865752867919c6de715adfd9a56d5 /drivers/media/video/ivtv/ivtv-driver.h
parent037c86c53362b0b3dda6201c9f62f64c9d17abb6 (diff)
V4L/DVB (5404): Merges VBI & YUV handling into a single work queue.
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/ivtv/ivtv-driver.h')
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.h46
1 files changed, 23 insertions, 23 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h
index 236e3532f569..1b2f7a6d311e 100644
--- a/drivers/media/video/ivtv/ivtv-driver.h
+++ b/drivers/media/video/ivtv/ivtv-driver.h
@@ -383,28 +383,29 @@ struct ivtv_mailbox_data {
383#define IVTV_F_S_APPL_IO 8 /* this stream is used read/written by an application */ 383#define IVTV_F_S_APPL_IO 8 /* this stream is used read/written by an application */
384 384
385/* per-ivtv, i_flags */ 385/* per-ivtv, i_flags */
386#define IVTV_F_I_DMA 0 /* DMA in progress */ 386#define IVTV_F_I_DMA 0 /* DMA in progress */
387#define IVTV_F_I_UDMA 1 /* UDMA in progress */ 387#define IVTV_F_I_UDMA 1 /* UDMA in progress */
388#define IVTV_F_I_UDMA_PENDING 2 /* UDMA pending */ 388#define IVTV_F_I_UDMA_PENDING 2 /* UDMA pending */
389 389#define IVTV_F_I_SPEED_CHANGE 3 /* A speed change is in progress */
390#define IVTV_F_I_SPEED_CHANGE 3 /* A speed change is in progress */ 390#define IVTV_F_I_EOS 4 /* End of encoder stream reached */
391#define IVTV_F_I_EOS 4 /* End of encoder stream reached */ 391#define IVTV_F_I_RADIO_USER 5 /* The radio tuner is selected */
392#define IVTV_F_I_RADIO_USER 5 /* The radio tuner is selected */ 392#define IVTV_F_I_DIG_RST 6 /* Reset digitizer */
393#define IVTV_F_I_DIG_RST 6 /* Reset digitizer */ 393#define IVTV_F_I_DEC_YUV 7 /* YUV instead of MPG is being decoded */
394#define IVTV_F_I_DEC_YUV 7 /* YUV instead of MPG is being decoded */ 394#define IVTV_F_I_ENC_VBI 8 /* VBI DMA */
395#define IVTV_F_I_ENC_VBI 8 /* VBI DMA */ 395#define IVTV_F_I_UPDATE_CC 9 /* CC should be updated */
396#define IVTV_F_I_UPDATE_CC 9 /* CC should be updated */ 396#define IVTV_F_I_UPDATE_WSS 10 /* WSS should be updated */
397#define IVTV_F_I_UPDATE_WSS 10 /* WSS should be updated */ 397#define IVTV_F_I_UPDATE_VPS 11 /* VPS should be updated */
398#define IVTV_F_I_UPDATE_VPS 11 /* VPS should be updated */ 398#define IVTV_F_I_DECODING_YUV 12 /* this stream is YUV frame decoding */
399#define IVTV_F_I_DECODING_YUV 12 /* this stream is YUV frame decoding */ 399#define IVTV_F_I_ENC_PAUSED 13 /* the encoder is paused */
400#define IVTV_F_I_ENC_PAUSED 13 /* the encoder is paused */
401#define IVTV_F_I_VALID_DEC_TIMINGS 14 /* last_dec_timing is valid */ 400#define IVTV_F_I_VALID_DEC_TIMINGS 14 /* last_dec_timing is valid */
401#define IVTV_F_I_WORK_HANDLER_VBI 15 /* there is work to be done for VBI */
402#define IVTV_F_I_WORK_HANDLER_YUV 16 /* there is work to be done for YUV */
402 403
403/* Event notifications */ 404/* Event notifications */
404#define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */ 405#define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */
405#define IVTV_F_I_EV_VSYNC 29 /* VSYNC event */ 406#define IVTV_F_I_EV_VSYNC 29 /* VSYNC event */
406#define IVTV_F_I_EV_VSYNC_FIELD 30 /* VSYNC event field (0 = first, 1 = second field) */ 407#define IVTV_F_I_EV_VSYNC_FIELD 30 /* VSYNC event field (0 = first, 1 = second field) */
407#define IVTV_F_I_EV_VSYNC_ENABLED 31 /* VSYNC event enabled */ 408#define IVTV_F_I_EV_VSYNC_ENABLED 31 /* VSYNC event enabled */
408 409
409/* Scatter-Gather array element, used in DMA transfers */ 410/* Scatter-Gather array element, used in DMA transfers */
410struct ivtv_SG_element { 411struct ivtv_SG_element {
@@ -612,8 +613,6 @@ struct yuv_playback_info
612 613
613 u32 yuv_forced_update; 614 u32 yuv_forced_update;
614 int update_frame; 615 int update_frame;
615 struct workqueue_struct *work_queues;
616 struct work_struct work_queue;
617 struct yuv_frame_info new_frame_info[4]; 616 struct yuv_frame_info new_frame_info[4];
618 struct yuv_frame_info old_frame_info; 617 struct yuv_frame_info old_frame_info;
619 struct yuv_frame_info old_frame_info_args; 618 struct yuv_frame_info old_frame_info_args;
@@ -676,8 +675,6 @@ struct vbi_info {
676 struct ivtv_buffer sliced_mpeg_buf; 675 struct ivtv_buffer sliced_mpeg_buf;
677 u32 inserted_frame; 676 u32 inserted_frame;
678 677
679 struct workqueue_struct *work_queues;
680 struct work_struct work_queue;
681 u32 start[2], count; 678 u32 start[2], count;
682 u32 raw_size; 679 u32 raw_size;
683 u32 sliced_size; 680 u32 sliced_size;
@@ -734,6 +731,9 @@ struct ivtv {
734 731
735 u32 base_addr; 732 u32 base_addr;
736 u32 irqmask; 733 u32 irqmask;
734
735 struct workqueue_struct *irq_work_queues;
736 struct work_struct irq_work_queue;
737 struct timer_list dma_timer; /* Timer used to catch unfinished DMAs */ 737 struct timer_list dma_timer; /* Timer used to catch unfinished DMAs */
738 738
739 struct vbi_info vbi; 739 struct vbi_info vbi;