linux/drivers/media/usb/pwc/pwc-v4l.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* Linux driver for Philips webcam
   USB and Video4Linux interface part.
   (C) 1999-2004 Nemosoft Unv.
   (C) 2004-2006 Luc Saillard ([email protected])
   (C) 2011 Hans de Goede <[email protected]>

   NOTE: this version of pwc is an unofficial (modified) release of pwc & pcwx
   driver and thus may have bugs that are not present in the original version.
   Please send bug reports and support requests to <[email protected]>.
   The decompression routines have been implemented by reverse-engineering the
   Nemosoft binary pwcx module. Caveat emptor.


*/

#include <linux/errno.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/poll.h>
#include <linux/vmalloc.h>
#include <linux/jiffies.h>
#include <asm/io.h>

#include "pwc.h"

#define PWC_CID_CUSTOM(ctrl)

static int pwc_g_volatile_ctrl(struct v4l2_ctrl *ctrl);
static int pwc_s_ctrl(struct v4l2_ctrl *ctrl);

static const struct v4l2_ctrl_ops pwc_ctrl_ops =;

enum {};
enum {};

static const char * const pwc_auto_whitebal_qmenu[] =;

static const struct v4l2_ctrl_config pwc_auto_white_balance_cfg =;

static const struct v4l2_ctrl_config pwc_autocontour_cfg =;

static const struct v4l2_ctrl_config pwc_contour_cfg =;

static const struct v4l2_ctrl_config pwc_backlight_cfg =;

static const struct v4l2_ctrl_config pwc_flicker_cfg =;

static const struct v4l2_ctrl_config pwc_noise_reduction_cfg =;

static const struct v4l2_ctrl_config pwc_save_user_cfg =;

static const struct v4l2_ctrl_config pwc_restore_user_cfg =;

static const struct v4l2_ctrl_config pwc_restore_factory_cfg =;

static const struct v4l2_ctrl_config pwc_awb_speed_cfg =;

static const struct v4l2_ctrl_config pwc_awb_delay_cfg =;

int pwc_init_controls(struct pwc_device *pdev)
{}

static void pwc_vidioc_fill_fmt(struct v4l2_format *f,
	int width, int height, u32 pixfmt)
{}

/* ioctl(VIDIOC_TRY_FMT) */
static int pwc_vidioc_try_fmt(struct pwc_device *pdev, struct v4l2_format *f)
{}

/* ioctl(VIDIOC_SET_FMT) */

static int pwc_s_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
{}

static int pwc_querycap(struct file *file, void *fh, struct v4l2_capability *cap)
{}

static int pwc_enum_input(struct file *file, void *fh, struct v4l2_input *i)
{}

static int pwc_g_input(struct file *file, void *fh, unsigned int *i)
{}

static int pwc_s_input(struct file *file, void *fh, unsigned int i)
{}

static int pwc_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
{}

static int pwc_set_awb(struct pwc_device *pdev)
{}

/* For CODEC2 models which have separate autogain and auto exposure */
static int pwc_set_autogain(struct pwc_device *pdev)
{}

/* For CODEC2 models which have separate autogain and auto exposure */
static int pwc_set_exposure_auto(struct pwc_device *pdev)
{}

/* For CODEC3 models which have autogain controlling both gain and exposure */
static int pwc_set_autogain_expo(struct pwc_device *pdev)
{}

static int pwc_set_motor(struct pwc_device *pdev)
{}

static int pwc_s_ctrl(struct v4l2_ctrl *ctrl)
{}

static int pwc_enum_fmt_vid_cap(struct file *file, void *fh, struct v4l2_fmtdesc *f)
{}

static int pwc_g_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
{}

static int pwc_try_fmt_vid_cap(struct file *file, void *fh, struct v4l2_format *f)
{}

static int pwc_enum_framesizes(struct file *file, void *fh,
					 struct v4l2_frmsizeenum *fsize)
{}

static int pwc_enum_frameintervals(struct file *file, void *fh,
					   struct v4l2_frmivalenum *fival)
{}

static int pwc_g_parm(struct file *file, void *fh,
		      struct v4l2_streamparm *parm)
{}

static int pwc_s_parm(struct file *file, void *fh,
		      struct v4l2_streamparm *parm)
{}

const struct v4l2_ioctl_ops pwc_ioctl_ops =;