diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-07-25 14:18:11 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2011-09-04 15:38:58 +0200 |
commit | 7250ca2bc92d75af37d1bb3ff796d6fd7394bba7 (patch) | |
tree | 45a0663433916145c81f96991bd618f51fd4c3e8 /isp/omap3isp-priv.h | |
parent | 9bc3d4c9a76886f62899365aca3a65d123395994 (diff) |
omap3isp: Add transparent buffer pools support
Buffers pools can be inserted in a pipeline between a video capture
device and a video output device. They will automatically relay buffers
from the capture device to the output device in a transparent way.
One use case of buffer pools is to work around hardware issues. When the
CCDC is directly connected to the preview engine, any ESD-induce noise
on the HS or VS signals will make the preview engine loose sync, is it
only relies on line counts. Introducing a buffer pool between the CCDC
and preview engine work around the issue.
This patch only implements buffer pool creation during pipeline build.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'isp/omap3isp-priv.h')
-rw-r--r-- | isp/omap3isp-priv.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/isp/omap3isp-priv.h b/isp/omap3isp-priv.h index b4d2114..9706ba8 100644 --- a/isp/omap3isp-priv.h +++ b/isp/omap3isp-priv.h @@ -40,6 +40,7 @@ struct omap3_isp_pad { enum omap3_isp_entity_type { OMAP3_ISP_ENTITY_ENTITY, + OMAP3_ISP_ENTITY_POOL, OMAP3_ISP_ENTITY_VIDEO, }; @@ -82,14 +83,34 @@ struct omap3_isp_video { #define to_omap3_isp_video(e) container_of(e, struct omap3_isp_video, entity) /* + * struct omap3_isp_pool - OMAP3 buffers pool + * @entity: OMAP3 entity + * @list: Pools list + * @input: Capture video device + * @output: Output video device + * @pool: Buffers pool + */ +struct omap3_isp_pool { + struct omap3_isp_entity entity; + struct list_entry list; + struct omap3_isp_video *input; + struct omap3_isp_video *output; + struct v4l2_buffers_pool *pool; +}; + +#define to_omap3_isp_pool(e) container_of(e, struct omap3_isp_pool, entity) + +/* * struct omap3_isp_pipeline - OMAP3 pipeline * @entitites: Entities in the pipeline * @scaler: Whether scaling should be performed on the ISP or the sensor + * @pools: Pools in the pipeline * @output: Video device at the output of the pipeline */ struct omap3_isp_pipeline { struct list_entry entities; enum omap3_isp_scaler scaler; + struct list_entry pools; struct omap3_isp_video *output; }; |