diff options
author | Ian Armstrong <ian@iarmst.demon.co.uk> | 2007-10-20 13:52:55 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-01-25 16:03:10 -0500 |
commit | a3e5f5e2dfb50bebca24329e5377d804c6e3eb1b (patch) | |
tree | 6a900057b715633c5b7951568253f35de2e0a24f /drivers/media/video/ivtv/ivtv-driver.h | |
parent | c240ad00af78228726e6301ad6ffc54d3adce2a0 (diff) |
V4L/DVB (6713): ivtv: ivtv_yuv_prep_frame breakup and yuv hardware buffer changes
ivtv_yuv_prep_frame is split in smaller code blocks.
Modified yuv buffer handling on the PVR350 itself. We now cycle through all 8
hardware buffers.
With this patch in place, driver behaviour should remain unchanged from the
existing release.
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.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h index b6dd2360e610..12ff9382718d 100644 --- a/drivers/media/video/ivtv/ivtv-driver.h +++ b/drivers/media/video/ivtv/ivtv-driver.h | |||
@@ -403,6 +403,8 @@ struct yuv_frame_info | |||
403 | #define IVTV_YUV_SYNC_ODD 0x04 | 403 | #define IVTV_YUV_SYNC_ODD 0x04 |
404 | #define IVTV_YUV_SYNC_MASK 0x04 | 404 | #define IVTV_YUV_SYNC_MASK 0x04 |
405 | 405 | ||
406 | #define IVTV_YUV_BUFFERS 8 | ||
407 | |||
406 | struct yuv_playback_info | 408 | struct yuv_playback_info |
407 | { | 409 | { |
408 | u32 reg_2834; | 410 | u32 reg_2834; |
@@ -475,11 +477,11 @@ struct yuv_playback_info | |||
475 | u32 yuv_forced_update; | 477 | u32 yuv_forced_update; |
476 | int update_frame; | 478 | int update_frame; |
477 | 479 | ||
478 | int sync_field[4]; /* Field to sync on */ | 480 | int sync_field[IVTV_YUV_BUFFERS]; /* Field to sync on */ |
479 | int field_delay[4]; /* Flag to extend duration of previous frame */ | 481 | int field_delay[IVTV_YUV_BUFFERS]; /* Flag to extend duration of previous frame */ |
480 | u8 fields_lapsed; /* Counter used when delaying a frame */ | 482 | u8 fields_lapsed; /* Counter used when delaying a frame */ |
481 | 483 | ||
482 | struct yuv_frame_info new_frame_info[4]; | 484 | struct yuv_frame_info new_frame_info[IVTV_YUV_BUFFERS]; |
483 | struct yuv_frame_info old_frame_info; | 485 | struct yuv_frame_info old_frame_info; |
484 | struct yuv_frame_info old_frame_info_args; | 486 | struct yuv_frame_info old_frame_info_args; |
485 | 487 | ||
@@ -487,6 +489,9 @@ struct yuv_playback_info | |||
487 | dma_addr_t blanking_dmaptr; | 489 | dma_addr_t blanking_dmaptr; |
488 | 490 | ||
489 | int stream_size; | 491 | int stream_size; |
492 | |||
493 | u8 draw_frame; /* PVR350 buffer to draw into */ | ||
494 | u8 max_frames_buffered; /* Maximum number of frames to buffer */ | ||
490 | }; | 495 | }; |
491 | 496 | ||
492 | #define IVTV_VBI_FRAMES 32 | 497 | #define IVTV_VBI_FRAMES 32 |