diff options
author | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-03-13 13:18:20 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@kernel.org> | 2022-03-18 07:58:34 +0300 |
commit | ceafdaac46ea2c623a64eabaed64abd2fe7cb76f (patch) | |
tree | c255efc7915e7b7696bbbf17c309b9e1b24828ea /drivers/media/platform/omap3isp/ispvideo.h | |
parent | d24a170bde6543fa2879d3c422b7874716cdf038 (diff) | |
download | linux-ceafdaac46ea2c623a64eabaed64abd2fe7cb76f.tar.xz |
media: platform: rename omap3isp/ to ti/omap3isp/
As the end goal is to have platform drivers split by vendor,
rename omap3isp/ to ti/omap3isp/.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Diffstat (limited to 'drivers/media/platform/omap3isp/ispvideo.h')
-rw-r--r-- | drivers/media/platform/omap3isp/ispvideo.h | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/drivers/media/platform/omap3isp/ispvideo.h b/drivers/media/platform/omap3isp/ispvideo.h deleted file mode 100644 index a0908670c0cf..000000000000 --- a/drivers/media/platform/omap3isp/ispvideo.h +++ /dev/null @@ -1,207 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * ispvideo.h - * - * TI OMAP3 ISP - Generic video node - * - * Copyright (C) 2009-2010 Nokia Corporation - * - * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com> - * Sakari Ailus <sakari.ailus@iki.fi> - */ - -#ifndef OMAP3_ISP_VIDEO_H -#define OMAP3_ISP_VIDEO_H - -#include <linux/v4l2-mediabus.h> -#include <media/media-entity.h> -#include <media/v4l2-dev.h> -#include <media/v4l2-fh.h> -#include <media/videobuf2-v4l2.h> - -#define ISP_VIDEO_DRIVER_NAME "ispvideo" -#define ISP_VIDEO_DRIVER_VERSION "0.0.2" - -struct isp_device; -struct isp_video; -struct v4l2_mbus_framefmt; -struct v4l2_pix_format; - -/* - * struct isp_format_info - ISP media bus format information - * @code: V4L2 media bus format code - * @truncated: V4L2 media bus format code for the same format truncated to 10 - * bits. Identical to @code if the format is 10 bits wide or less. - * @uncompressed: V4L2 media bus format code for the corresponding uncompressed - * format. Identical to @code if the format is not DPCM compressed. - * @flavor: V4L2 media bus format code for the same pixel layout but - * shifted to be 8 bits per pixel. =0 if format is not shiftable. - * @pixelformat: V4L2 pixel format FCC identifier - * @width: Bits per pixel (when transferred over a bus) - * @bpp: Bytes per pixel (when stored in memory) - */ -struct isp_format_info { - u32 code; - u32 truncated; - u32 uncompressed; - u32 flavor; - u32 pixelformat; - unsigned int width; - unsigned int bpp; -}; - -enum isp_pipeline_stream_state { - ISP_PIPELINE_STREAM_STOPPED = 0, - ISP_PIPELINE_STREAM_CONTINUOUS = 1, - ISP_PIPELINE_STREAM_SINGLESHOT = 2, -}; - -enum isp_pipeline_state { - /* The stream has been started on the input video node. */ - ISP_PIPELINE_STREAM_INPUT = 1, - /* The stream has been started on the output video node. */ - ISP_PIPELINE_STREAM_OUTPUT = 2, - /* At least one buffer is queued on the input video node. */ - ISP_PIPELINE_QUEUE_INPUT = 4, - /* At least one buffer is queued on the output video node. */ - ISP_PIPELINE_QUEUE_OUTPUT = 8, - /* The input entity is idle, ready to be started. */ - ISP_PIPELINE_IDLE_INPUT = 16, - /* The output entity is idle, ready to be started. */ - ISP_PIPELINE_IDLE_OUTPUT = 32, - /* The pipeline is currently streaming. */ - ISP_PIPELINE_STREAM = 64, -}; - -/* - * struct isp_pipeline - An ISP hardware pipeline - * @field: The field being processed by the pipeline - * @error: A hardware error occurred during capture - * @ent_enum: Entities in the pipeline - */ -struct isp_pipeline { - struct media_pipeline pipe; - spinlock_t lock; /* Pipeline state and queue flags */ - unsigned int state; - enum isp_pipeline_stream_state stream_state; - struct isp_video *input; - struct isp_video *output; - struct media_entity_enum ent_enum; - unsigned long l3_ick; - unsigned int max_rate; - enum v4l2_field field; - atomic_t frame_number; - bool do_propagation; /* of frame number */ - bool error; - struct v4l2_fract max_timeperframe; - struct v4l2_subdev *external; - unsigned int external_rate; - unsigned int external_width; -}; - -#define to_isp_pipeline(__e) \ - container_of((__e)->pipe, struct isp_pipeline, pipe) - -static inline int isp_pipeline_ready(struct isp_pipeline *pipe) -{ - return pipe->state == (ISP_PIPELINE_STREAM_INPUT | - ISP_PIPELINE_STREAM_OUTPUT | - ISP_PIPELINE_QUEUE_INPUT | - ISP_PIPELINE_QUEUE_OUTPUT | - ISP_PIPELINE_IDLE_INPUT | - ISP_PIPELINE_IDLE_OUTPUT); -} - -/** - * struct isp_buffer - ISP video buffer - * @vb: videobuf2 buffer - * @irqlist: List head for insertion into IRQ queue - * @dma: DMA address - */ -struct isp_buffer { - struct vb2_v4l2_buffer vb; - struct list_head irqlist; - dma_addr_t dma; -}; - -#define to_isp_buffer(buf) container_of(buf, struct isp_buffer, vb) - -enum isp_video_dmaqueue_flags { - /* Set if DMA queue becomes empty when ISP_PIPELINE_STREAM_CONTINUOUS */ - ISP_VIDEO_DMAQUEUE_UNDERRUN = (1 << 0), - /* Set when queuing buffer to an empty DMA queue */ - ISP_VIDEO_DMAQUEUE_QUEUED = (1 << 1), -}; - -#define isp_video_dmaqueue_flags_clr(video) \ - ({ (video)->dmaqueue_flags = 0; }) - -/* - * struct isp_video_operations - ISP video operations - * @queue: Resume streaming when a buffer is queued. Called on VIDIOC_QBUF - * if there was no buffer previously queued. - */ -struct isp_video_operations { - int(*queue)(struct isp_video *video, struct isp_buffer *buffer); -}; - -struct isp_video { - struct video_device video; - enum v4l2_buf_type type; - struct media_pad pad; - - struct mutex mutex; /* format and crop settings */ - atomic_t active; - - struct isp_device *isp; - - unsigned int capture_mem; - unsigned int bpl_alignment; /* alignment value */ - unsigned int bpl_zero_padding; /* whether the alignment is optional */ - unsigned int bpl_max; /* maximum bytes per line value */ - unsigned int bpl_value; /* bytes per line value */ - unsigned int bpl_padding; /* padding at end of line */ - - /* Pipeline state */ - struct isp_pipeline pipe; - struct mutex stream_lock; /* pipeline and stream states */ - bool error; - - /* Video buffers queue */ - struct vb2_queue *queue; - struct mutex queue_lock; /* protects the queue */ - spinlock_t irqlock; /* protects dmaqueue */ - struct list_head dmaqueue; - enum isp_video_dmaqueue_flags dmaqueue_flags; - - const struct isp_video_operations *ops; -}; - -#define to_isp_video(vdev) container_of(vdev, struct isp_video, video) - -struct isp_video_fh { - struct v4l2_fh vfh; - struct isp_video *video; - struct vb2_queue queue; - struct v4l2_format format; - struct v4l2_fract timeperframe; -}; - -#define to_isp_video_fh(fh) container_of(fh, struct isp_video_fh, vfh) -#define isp_video_queue_to_isp_video_fh(q) \ - container_of(q, struct isp_video_fh, queue) - -int omap3isp_video_init(struct isp_video *video, const char *name); -void omap3isp_video_cleanup(struct isp_video *video); -int omap3isp_video_register(struct isp_video *video, - struct v4l2_device *vdev); -void omap3isp_video_unregister(struct isp_video *video); -struct isp_buffer *omap3isp_video_buffer_next(struct isp_video *video); -void omap3isp_video_cancel_stream(struct isp_video *video); -void omap3isp_video_resume(struct isp_video *video, int continuous); -struct media_pad *omap3isp_video_remote_pad(struct isp_video *video); - -const struct isp_format_info * -omap3isp_video_format_info(u32 code); - -#endif /* OMAP3_ISP_VIDEO_H */ |