linux/drivers/staging/media/imx/imx-ic-prp.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * V4L2 Capture IC Preprocess Subdev for Freescale i.MX5/6 SOC
 *
 * This subdevice handles capture of video frames from the CSI or VDIC,
 * which are routed directly to the Image Converter preprocess tasks,
 * for resizing, colorspace conversion, and rotation.
 *
 * Copyright (c) 2012-2017 Mentor Graphics Inc.
 */
#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"

/*
 * Min/Max supported width and heights.
 */
#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)
{}

/*
 * V4L2 subdev operations.
 */

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 =;