linux/drivers/media/platform/renesas/rcar-vin/rcar-v4l2.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Driver for Renesas R-Car VIN
 *
 * Copyright (C) 2016 Renesas Electronics Corp.
 * Copyright (C) 2011-2013 Renesas Solutions Corp.
 * Copyright (C) 2013 Cogent Embedded, Inc., <[email protected]>
 * Copyright (C) 2008 Magnus Damm
 *
 * Based on the soc-camera rcar_vin driver
 */

#include <linux/pm_runtime.h>

#include <media/v4l2-event.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-mc.h>
#include <media/v4l2-rect.h>

#include "rcar-vin.h"

#define RVIN_DEFAULT_FORMAT
#define RVIN_DEFAULT_WIDTH
#define RVIN_DEFAULT_HEIGHT
#define RVIN_DEFAULT_FIELD
#define RVIN_DEFAULT_COLORSPACE

/* -----------------------------------------------------------------------------
 * Format Conversions
 */

static const struct rvin_video_format rvin_formats[] =;

const struct rvin_video_format *rvin_format_from_pixel(struct rvin_dev *vin,
						       u32 pixelformat)
{}

static u32 rvin_format_bytesperline(struct rvin_dev *vin,
				    struct v4l2_pix_format *pix)
{}

static u32 rvin_format_sizeimage(struct v4l2_pix_format *pix)
{}

static void rvin_format_align(struct rvin_dev *vin, struct v4l2_pix_format *pix)
{}

/* -----------------------------------------------------------------------------
 * V4L2
 */

static int rvin_reset_format(struct rvin_dev *vin)
{}

static int rvin_try_format(struct rvin_dev *vin, u32 which,
			   struct v4l2_pix_format *pix,
			   struct v4l2_rect *src_rect)
{}

static int rvin_querycap(struct file *file, void *priv,
			 struct v4l2_capability *cap)
{}

static int rvin_try_fmt_vid_cap(struct file *file, void *priv,
				struct v4l2_format *f)
{}

static int rvin_s_fmt_vid_cap(struct file *file, void *priv,
			      struct v4l2_format *f)
{}

static int rvin_g_fmt_vid_cap(struct file *file, void *priv,
			      struct v4l2_format *f)
{}

static int rvin_enum_fmt_vid_cap(struct file *file, void *priv,
				 struct v4l2_fmtdesc *f)
{}

static int rvin_remote_rectangle(struct rvin_dev *vin, struct v4l2_rect *rect)
{}

static int rvin_g_selection(struct file *file, void *fh,
			    struct v4l2_selection *s)
{}

static int rvin_s_selection(struct file *file, void *fh,
			    struct v4l2_selection *s)
{}

static int rvin_g_parm(struct file *file, void *priv,
		       struct v4l2_streamparm *parm)
{}

static int rvin_s_parm(struct file *file, void *priv,
		       struct v4l2_streamparm *parm)
{}

static int rvin_g_pixelaspect(struct file *file, void *priv,
			      int type, struct v4l2_fract *f)
{}

static int rvin_enum_input(struct file *file, void *priv,
			   struct v4l2_input *i)
{}

static int rvin_g_input(struct file *file, void *priv, unsigned int *i)
{}

static int rvin_s_input(struct file *file, void *priv, unsigned int i)
{}

static int rvin_querystd(struct file *file, void *priv, v4l2_std_id *a)
{}

static int rvin_s_std(struct file *file, void *priv, v4l2_std_id a)
{}

static int rvin_g_std(struct file *file, void *priv, v4l2_std_id *a)
{}

static int rvin_subscribe_event(struct v4l2_fh *fh,
				const struct v4l2_event_subscription *sub)
{}

static int rvin_enum_dv_timings(struct file *file, void *priv_fh,
				struct v4l2_enum_dv_timings *timings)
{}

static int rvin_s_dv_timings(struct file *file, void *priv_fh,
			     struct v4l2_dv_timings *timings)
{}

static int rvin_g_dv_timings(struct file *file, void *priv_fh,
			     struct v4l2_dv_timings *timings)
{}

static int rvin_query_dv_timings(struct file *file, void *priv_fh,
				 struct v4l2_dv_timings *timings)
{}

static int rvin_dv_timings_cap(struct file *file, void *priv_fh,
			       struct v4l2_dv_timings_cap *cap)
{}

static int rvin_g_edid(struct file *file, void *fh, struct v4l2_edid *edid)
{}

static int rvin_s_edid(struct file *file, void *fh, struct v4l2_edid *edid)
{}

static const struct v4l2_ioctl_ops rvin_ioctl_ops =;

/* -----------------------------------------------------------------------------
 * V4L2 Media Controller
 */

static void rvin_mc_try_format(struct rvin_dev *vin,
			       struct v4l2_pix_format *pix)
{}

static int rvin_mc_try_fmt_vid_cap(struct file *file, void *priv,
				   struct v4l2_format *f)
{}

static int rvin_mc_s_fmt_vid_cap(struct file *file, void *priv,
				 struct v4l2_format *f)
{}

static const struct v4l2_ioctl_ops rvin_mc_ioctl_ops =;

/* -----------------------------------------------------------------------------
 * File Operations
 */

static int rvin_power_parallel(struct rvin_dev *vin, bool on)
{}

static int rvin_open(struct file *file)
{}

static int rvin_release(struct file *file)
{}

static const struct v4l2_file_operations rvin_fops =;

void rvin_v4l2_unregister(struct rvin_dev *vin)
{}

static void rvin_notify_video_device(struct rvin_dev *vin,
				     unsigned int notification, void *arg)
{}

static void rvin_notify(struct v4l2_subdev *sd,
			unsigned int notification, void *arg)
{}

int rvin_v4l2_register(struct rvin_dev *vin)
{}