linux/drivers/media/pci/solo6x10/solo6x10-v4l2.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2010-2013 Bluecherry, LLC <https://www.bluecherrydvr.com>
 *
 * Original author:
 * Ben Collins <[email protected]>
 *
 * Additional work by:
 * John Brooks <[email protected]>
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/kthread.h>
#include <linux/freezer.h>

#include <media/v4l2-ioctl.h>
#include <media/v4l2-common.h>
#include <media/v4l2-event.h>
#include <media/videobuf2-v4l2.h>
#include <media/videobuf2-dma-contig.h>

#include "solo6x10.h"
#include "solo6x10-tw28.h"

/* Image size is two fields, SOLO_HW_BPL is one horizontal line in hardware */
#define SOLO_HW_BPL
#define solo_vlines(__solo)
#define solo_image_size(__solo)
#define solo_bytesperline(__solo)

#define MIN_VID_BUFFERS

static inline void erase_on(struct solo_dev *solo_dev)
{}

static inline int erase_off(struct solo_dev *solo_dev)
{}

void solo_video_in_isr(struct solo_dev *solo_dev)
{}

static void solo_win_setup(struct solo_dev *solo_dev, u8 ch,
			   int sx, int sy, int ex, int ey, int scale)
{}

static int solo_v4l2_ch_ext_4up(struct solo_dev *solo_dev, u8 idx, int on)
{}

static int solo_v4l2_ch_ext_16up(struct solo_dev *solo_dev, int on)
{}

static int solo_v4l2_ch(struct solo_dev *solo_dev, u8 ch, int on)
{}

static int solo_v4l2_set_ch(struct solo_dev *solo_dev, u8 ch)
{}

static void solo_fillbuf(struct solo_dev *solo_dev,
			 struct vb2_buffer *vb)
{}

static void solo_thread_try(struct solo_dev *solo_dev)
{}

static int solo_thread(void *data)
{}

static int solo_start_thread(struct solo_dev *solo_dev)
{}

static void solo_stop_thread(struct solo_dev *solo_dev)
{}

static int solo_queue_setup(struct vb2_queue *q,
			   unsigned int *num_buffers, unsigned int *num_planes,
			   unsigned int sizes[], struct device *alloc_devs[])
{}

static int solo_start_streaming(struct vb2_queue *q, unsigned int count)
{}

static void solo_stop_streaming(struct vb2_queue *q)
{}

static void solo_buf_queue(struct vb2_buffer *vb)
{}

static const struct vb2_ops solo_video_qops =;

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

static int solo_enum_ext_input(struct solo_dev *solo_dev,
			       struct v4l2_input *input)
{}

static int solo_enum_input(struct file *file, void *priv,
			   struct v4l2_input *input)
{}

static int solo_set_input(struct file *file, void *priv, unsigned int index)
{}

static int solo_get_input(struct file *file, void *priv, unsigned int *index)
{}

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

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

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

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

static int solo_g_std(struct file *file, void *priv, v4l2_std_id *i)
{}

int solo_set_video_type(struct solo_dev *solo_dev, bool is_50hz)
{}

static int solo_s_std(struct file *file, void *priv, v4l2_std_id std)
{}

static int solo_s_ctrl(struct v4l2_ctrl *ctrl)
{}

static const struct v4l2_file_operations solo_v4l2_fops =;

static const struct v4l2_ioctl_ops solo_v4l2_ioctl_ops =;

static const struct video_device solo_v4l2_template =;

static const struct v4l2_ctrl_ops solo_ctrl_ops =;

static const struct v4l2_ctrl_config solo_motion_trace_ctrl =;

int solo_v4l2_init(struct solo_dev *solo_dev, unsigned nr)
{}

void solo_v4l2_exit(struct solo_dev *solo_dev)
{}