#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/timer.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-subdev.h>
#include <media/imx.h>
#include "imx-media.h"
#include "imx-ic.h"
#define MIN_W …
#define MIN_H …
#define MAX_W …
#define MAX_H …
#define W_ALIGN …
#define H_ALIGN …
#define S_ALIGN …
struct prp_priv { … };
static inline struct prp_priv *sd_to_priv(struct v4l2_subdev *sd)
{ … }
static int prp_start(struct prp_priv *priv)
{ … }
static void prp_stop(struct prp_priv *priv)
{ … }
static struct v4l2_mbus_framefmt *
__prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,
unsigned int pad, enum v4l2_subdev_format_whence which)
{ … }
static int prp_enum_mbus_code(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *code)
{ … }
static int prp_get_fmt(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *sdformat)
{ … }
static int prp_set_fmt(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *sdformat)
{ … }
static int prp_link_setup(struct media_entity *entity,
const struct media_pad *local,
const struct media_pad *remote, u32 flags)
{ … }
static int prp_link_validate(struct v4l2_subdev *sd,
struct media_link *link,
struct v4l2_subdev_format *source_fmt,
struct v4l2_subdev_format *sink_fmt)
{ … }
static int prp_s_stream(struct v4l2_subdev *sd, int enable)
{ … }
static int prp_get_frame_interval(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_frame_interval *fi)
{ … }
static int prp_set_frame_interval(struct v4l2_subdev *sd,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_frame_interval *fi)
{ … }
static int prp_registered(struct v4l2_subdev *sd)
{ … }
static const struct v4l2_subdev_pad_ops prp_pad_ops = …;
static const struct v4l2_subdev_video_ops prp_video_ops = …;
static const struct media_entity_operations prp_entity_ops = …;
static const struct v4l2_subdev_ops prp_subdev_ops = …;
static const struct v4l2_subdev_internal_ops prp_internal_ops = …;
static int prp_init(struct imx_ic_priv *ic_priv)
{ … }
static void prp_remove(struct imx_ic_priv *ic_priv)
{ … }
struct imx_ic_ops imx_ic_prp_ops = …;