linux/drivers/media/pci/saa7134/saa7134-video.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *
 * device driver for philips saa7134 based TV cards
 * video4linux video interface
 *
 * (c) 2001-03 Gerd Knorr <[email protected]> [SuSE Labs]
 */

#include "saa7134.h"
#include "saa7134-reg.h"

#include <linux/init.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/sort.h>

#include <media/v4l2-common.h>
#include <media/v4l2-event.h>
#include <media/i2c/saa6588.h>

/* ------------------------------------------------------------------ */

unsigned int video_debug;
static unsigned int gbuffers      =;
static unsigned int noninterlaced; /* 0 */
static unsigned int gbufsize      =;
static unsigned int gbufsize_max  =;
static char secam[] =;
module_param(video_debug, int, 0644);
MODULE_PARM_DESC();
module_param(gbuffers, int, 0444);
MODULE_PARM_DESC();
module_param(noninterlaced, int, 0644);
MODULE_PARM_DESC();
module_param_string();
MODULE_PARM_DESC();


#define video_dbg(fmt, arg...)

/* ------------------------------------------------------------------ */
/* Defines for Video Output Port Register at address 0x191            */

/* Bit 0: VIP code T bit polarity */

#define VP_T_CODE_P_NON_INVERTED
#define VP_T_CODE_P_INVERTED

/* ------------------------------------------------------------------ */
/* Defines for Video Output Port Register at address 0x195            */

/* Bit 2: Video output clock delay control */

#define VP_CLK_CTRL2_NOT_DELAYED
#define VP_CLK_CTRL2_DELAYED

/* Bit 1: Video output clock invert control */

#define VP_CLK_CTRL1_NON_INVERTED
#define VP_CLK_CTRL1_INVERTED

/* ------------------------------------------------------------------ */
/* Defines for Video Output Port Register at address 0x196            */

/* Bits 2 to 0: VSYNC pin video vertical sync type */

#define VP_VS_TYPE_MASK

#define VP_VS_TYPE_OFF
#define VP_VS_TYPE_V123
#define VP_VS_TYPE_V_ITU
#define VP_VS_TYPE_VGATE_L
#define VP_VS_TYPE_RESERVED1
#define VP_VS_TYPE_RESERVED2
#define VP_VS_TYPE_F_ITU
#define VP_VS_TYPE_SC_FID

/* ------------------------------------------------------------------ */
/* data structs for video                                             */

static int video_out[][9] =;

static struct saa7134_format formats[] =;
#define FORMATS

#define NORM_625_50

#define NORM_525_60

static struct saa7134_tvnorm tvnorms[] =;
#define TVNORMS

static struct saa7134_format* format_by_fourcc(unsigned int fourcc)
{}

/* ------------------------------------------------------------------ */

static void set_tvnorm(struct saa7134_dev *dev, struct saa7134_tvnorm *norm)
{}

static void video_mux(struct saa7134_dev *dev, int input)
{}


static void saa7134_set_decoder(struct saa7134_dev *dev)
{}

void saa7134_set_tvnorm_hw(struct saa7134_dev *dev)
{}

static void set_h_prescale(struct saa7134_dev *dev, int task, int prescale)
{}

static void set_v_scale(struct saa7134_dev *dev, int task, int yscale)
{}

static void set_size(struct saa7134_dev *dev, int task,
		     int width, int height, int interlace)
{}

/* ------------------------------------------------------------------ */

/*
 * Media Controller helper functions
 */

static int saa7134_enable_analog_tuner(struct saa7134_dev *dev)
{}

/* ------------------------------------------------------------------ */

static int buffer_activate(struct saa7134_dev *dev,
			   struct saa7134_buf *buf,
			   struct saa7134_buf *next)
{}

static int buffer_init(struct vb2_buffer *vb2)
{}

static int buffer_prepare(struct vb2_buffer *vb2)
{}

static int queue_setup(struct vb2_queue *q,
			   unsigned int *nbuffers, unsigned int *nplanes,
			   unsigned int sizes[], struct device *alloc_devs[])
{}

/*
 * move buffer to hardware queue
 */
void saa7134_vb2_buffer_queue(struct vb2_buffer *vb)
{}
EXPORT_SYMBOL_GPL();

int saa7134_vb2_start_streaming(struct vb2_queue *vq, unsigned int count)
{}

void saa7134_vb2_stop_streaming(struct vb2_queue *vq)
{}

static const struct vb2_ops vb2_qops =;

/* ------------------------------------------------------------------ */

static int saa7134_s_ctrl(struct v4l2_ctrl *ctrl)
{}

/* ------------------------------------------------------------------ */

static int video_open(struct file *file)
{}

static int video_release(struct file *file)
{}

static ssize_t radio_read(struct file *file, char __user *data,
			 size_t count, loff_t *ppos)
{}

static __poll_t radio_poll(struct file *file, poll_table *wait)
{}

/* ------------------------------------------------------------------ */

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

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

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

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

int saa7134_enum_input(struct file *file, void *priv, struct v4l2_input *i)
{}
EXPORT_SYMBOL_GPL();

int saa7134_g_input(struct file *file, void *priv, unsigned int *i)
{}
EXPORT_SYMBOL_GPL();

int saa7134_s_input(struct file *file, void *priv, unsigned int i)
{}
EXPORT_SYMBOL_GPL();

int saa7134_querycap(struct file *file, void *priv,
					struct v4l2_capability *cap)
{}
EXPORT_SYMBOL_GPL();

int saa7134_s_std(struct file *file, void *priv, v4l2_std_id id)
{}
EXPORT_SYMBOL_GPL();

int saa7134_g_std(struct file *file, void *priv, v4l2_std_id *id)
{}
EXPORT_SYMBOL_GPL();

static v4l2_std_id saa7134_read_std(struct saa7134_dev *dev)
{}

int saa7134_querystd(struct file *file, void *priv, v4l2_std_id *std)
{}
EXPORT_SYMBOL_GPL();

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

static int saa7134_g_selection(struct file *file, void *f, struct v4l2_selection *sel)
{}

static int saa7134_s_selection(struct file *file, void *f, struct v4l2_selection *sel)
{}

int saa7134_g_tuner(struct file *file, void *priv,
					struct v4l2_tuner *t)
{}
EXPORT_SYMBOL_GPL();

int saa7134_s_tuner(struct file *file, void *priv,
					const struct v4l2_tuner *t)
{}
EXPORT_SYMBOL_GPL();

int saa7134_g_frequency(struct file *file, void *priv,
					struct v4l2_frequency *f)
{}
EXPORT_SYMBOL_GPL();

int saa7134_s_frequency(struct file *file, void *priv,
					const struct v4l2_frequency *f)
{}
EXPORT_SYMBOL_GPL();

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

#ifdef CONFIG_VIDEO_ADV_DEBUG
static int vidioc_g_register (struct file *file, void *priv,
			      struct v4l2_dbg_register *reg)
{}

static int vidioc_s_register (struct file *file, void *priv,
				const struct v4l2_dbg_register *reg)
{}
#endif

static int radio_g_tuner(struct file *file, void *priv,
					struct v4l2_tuner *t)
{}
static int radio_s_tuner(struct file *file, void *priv,
					const struct v4l2_tuner *t)
{}

static const struct v4l2_file_operations video_fops =;

static const struct v4l2_ioctl_ops video_ioctl_ops =;

static const struct v4l2_file_operations radio_fops =;

static const struct v4l2_ioctl_ops radio_ioctl_ops =;

/* ----------------------------------------------------------- */
/* exported stuff                                              */

struct video_device saa7134_video_template =;

struct video_device saa7134_radio_template =;

static const struct v4l2_ctrl_ops saa7134_ctrl_ops =;

static const struct v4l2_ctrl_config saa7134_ctrl_invert =;

static const struct v4l2_ctrl_config saa7134_ctrl_y_odd =;

static const struct v4l2_ctrl_config saa7134_ctrl_y_even =;

static const struct v4l2_ctrl_config saa7134_ctrl_automute =;

int saa7134_video_init1(struct saa7134_dev *dev)
{}

void saa7134_video_fini(struct saa7134_dev *dev)
{}

int saa7134_videoport_init(struct saa7134_dev *dev)
{}

int saa7134_video_init2(struct saa7134_dev *dev)
{}

void saa7134_irq_video_signalchange(struct saa7134_dev *dev)
{}


void saa7134_irq_video_done(struct saa7134_dev *dev, unsigned long status)
{}