#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)
{ … }
static int pwc_vidioc_try_fmt(struct pwc_device *pdev, struct v4l2_format *f)
{ … }
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)
{ … }
static int pwc_set_autogain(struct pwc_device *pdev)
{ … }
static int pwc_set_exposure_auto(struct pwc_device *pdev)
{ … }
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 = …;