mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
![Steve Longerbeam](/assets/img/avatar_default.png)
This is a set of three media entity subdevice drivers for the i.MX Image Converter: - Pre-process Router: Takes input frames from CSI0, CSI1, or VDIC. Two output pads enable either or both of the preprocess tasks below. If the input is from one of the CSIs, both proprocess task links can be enabled to process frames from that CSI simultaneously. If the input is the VDIC, only the Pre-processing Viewfinder task link can be enabled. - Pre-processing Encode task: video frames are routed directly from the CSI and can be scaled, color-space converted, and rotated. Scaled output is limited to 1024x1024 resolution. Output frames are routed to the prpenc capture device. - Pre-processing Viewfinder task: this task can perform the same conversions as the pre-process encode task, but in addition can be used for hardware motion compensated deinterlacing. Frames can come either directly from the CSI or from the VDIC. Scaled output is limited to 1024x1024 resolution. Output frames are routed to the prpvf capture device. Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
38 lines
973 B
C
38 lines
973 B
C
/*
|
|
* V4L2 Image Converter Subdev for Freescale i.MX5/6 SOC
|
|
*
|
|
* Copyright (c) 2016 Mentor Graphics Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*/
|
|
#ifndef _IMX_IC_H
|
|
#define _IMX_IC_H
|
|
|
|
#include <media/v4l2-subdev.h>
|
|
|
|
struct imx_ic_priv {
|
|
struct device *dev;
|
|
struct v4l2_subdev sd;
|
|
int ipu_id;
|
|
int task_id;
|
|
void *prp_priv;
|
|
void *task_priv;
|
|
};
|
|
|
|
struct imx_ic_ops {
|
|
const struct v4l2_subdev_ops *subdev_ops;
|
|
const struct v4l2_subdev_internal_ops *internal_ops;
|
|
const struct media_entity_operations *entity_ops;
|
|
|
|
int (*init)(struct imx_ic_priv *ic_priv);
|
|
void (*remove)(struct imx_ic_priv *ic_priv);
|
|
};
|
|
|
|
extern struct imx_ic_ops imx_ic_prp_ops;
|
|
extern struct imx_ic_ops imx_ic_prpencvf_ops;
|
|
extern struct imx_ic_ops imx_ic_pp_ops;
|
|
|
|
#endif
|