/* * OMAP3 ISP library - OMAP3 ISP private header * * Copyright (C) 2010-2011 Ideas on board SPRL * * Contact: Laurent Pinchart * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2.1 of the License, or (at * your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef __OMAP3ISP_PRIV_H #define __OMAP3ISP_PRIV_H #include #include "omap3isp.h" /* * struct omap3_isp_video - OMAP3 video device * @subdev: Sub-device from which video is captured for this device * @node: Output video node entity * @video: V4L2 capture device * @format: Current video format * @pool: Buffers pool * @scaler: Whether scaling should be performed on the ISP or the sensor * @dequeued: Bitmask of dequeued buffers that belong to the application * @queued: Number of buffers queued to the driver * @running: Whether video capture is running on the device */ struct omap3_isp_video { struct media_entity *subdev; struct media_entity *node; struct v4l2_device *video; struct v4l2_mbus_framefmt format; struct v4l2_buffers_pool *pool; enum omap3_isp_scaler scaler; unsigned int dequeued; unsigned int queued; bool running; }; /* * struct omap3_isp_pad - OMAP3 entity pad * @link: Link connected to the pad * @format: Format on the pad */ struct omap3_isp_pad { struct media_entity_link *link; struct v4l2_mbus_framefmt format; }; /* * struct omap3_isp_entity - OMAP3 entity in a pipeline * @list: Entities list * @entity: Media entity information * @sink: Sink pad * @source: Sink pad */ struct omap3_isp_entity { struct list_entry list; struct media_entity *entity; struct omap3_isp_pad sink; struct omap3_isp_pad source; }; /* * struct omap3_isp_pipeline - OMAP3 pipeline * @entitites: Entities in the pipeline * @output: Video device at the output of the pipeline */ struct omap3_isp_pipeline { struct list_entry entities; struct omap3_isp_video output; }; struct omap3_isp_device { struct media_device *mdev; struct media_entity *ccdc; struct media_entity *preview; struct media_entity *resizer; struct media_entity *sensor; struct v4l2_mbus_framefmt sensor_format; struct omap3_isp_pipeline viewfinder; struct omap3_isp_pipeline snapshot; const struct omap3_isp_operations *ops; }; #endif