#include <linux/device.h>
#include <linux/pm_runtime.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-mc.h>
#include <media/videobuf2-v4l2.h>
#include "sun4i_csi.h"
#define CSI_DEFAULT_WIDTH …
#define CSI_DEFAULT_HEIGHT …
static const struct sun4i_csi_format sun4i_csi_formats[] = …;
const struct sun4i_csi_format *sun4i_csi_find_format(const u32 *fourcc,
const u32 *mbus)
{ … }
static int sun4i_csi_querycap(struct file *file, void *priv,
struct v4l2_capability *cap)
{ … }
static int sun4i_csi_enum_input(struct file *file, void *priv,
struct v4l2_input *inp)
{ … }
static int sun4i_csi_g_input(struct file *file, void *fh,
unsigned int *i)
{ … }
static int sun4i_csi_s_input(struct file *file, void *fh,
unsigned int i)
{ … }
static void _sun4i_csi_try_fmt(struct sun4i_csi *csi,
struct v4l2_pix_format_mplane *pix)
{ … }
static int sun4i_csi_try_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int sun4i_csi_s_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int sun4i_csi_g_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_format *f)
{ … }
static int sun4i_csi_enum_fmt_vid_cap(struct file *file, void *priv,
struct v4l2_fmtdesc *f)
{ … }
static const struct v4l2_ioctl_ops sun4i_csi_ioctl_ops = …;
static int sun4i_csi_open(struct file *file)
{ … }
static int sun4i_csi_release(struct file *file)
{ … }
static const struct v4l2_file_operations sun4i_csi_fops = …;
static const struct v4l2_mbus_framefmt sun4i_csi_pad_fmt_default = …;
static int sun4i_csi_subdev_init_state(struct v4l2_subdev *subdev,
struct v4l2_subdev_state *sd_state)
{ … }
static int sun4i_csi_subdev_get_fmt(struct v4l2_subdev *subdev,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *fmt)
{ … }
static int sun4i_csi_subdev_set_fmt(struct v4l2_subdev *subdev,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_format *fmt)
{ … }
static int
sun4i_csi_subdev_enum_mbus_code(struct v4l2_subdev *subdev,
struct v4l2_subdev_state *sd_state,
struct v4l2_subdev_mbus_code_enum *mbus)
{ … }
static const struct v4l2_subdev_pad_ops sun4i_csi_subdev_pad_ops = …;
const struct v4l2_subdev_ops sun4i_csi_subdev_ops = …;
const struct v4l2_subdev_internal_ops sun4i_csi_subdev_internal_ops = …;
int sun4i_csi_v4l2_register(struct sun4i_csi *csi)
{ … }