#define pr_fmt(fmt) …
#define MODULE_NAME …
#include <linux/input.h>
#include "gspca.h"
#define CONEX_CAM
#include "jpeg.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static int frame_rate;
static int i2c_detect_tries = …;
struct sd { … };
enum sensors { … };
#include "w996Xcf.c"
struct ctrl_valid { … };
static const struct ctrl_valid valid_controls[] = …;
static const struct v4l2_pix_format ov519_vga_mode[] = …;
static const struct v4l2_pix_format ov519_sif_mode[] = …;
static const struct v4l2_pix_format ov518_vga_mode[] = …;
static const struct v4l2_pix_format ov518_sif_mode[] = …;
static const struct v4l2_pix_format ov511_vga_mode[] = …;
static const struct v4l2_pix_format ov511_sif_mode[] = …;
static const struct v4l2_pix_format ovfx2_ov2610_mode[] = …;
static const struct v4l2_pix_format ovfx2_ov3610_mode[] = …;
static const struct v4l2_pix_format ovfx2_ov9600_mode[] = …;
#define R51x_FIFO_PSIZE …
#define R51x_SYS_RESET …
#define OV511_RESET_OMNICE …
#define R51x_SYS_INIT …
#define R51x_SYS_SNAP …
#define R51x_SYS_CUST_ID …
#define R51x_COMP_LUT_BEGIN …
#define R511_CAM_DELAY …
#define R511_CAM_EDGE …
#define R511_CAM_PXCNT …
#define R511_CAM_LNCNT …
#define R511_CAM_PXDIV …
#define R511_CAM_LNDIV …
#define R511_CAM_UV_EN …
#define R511_CAM_LINE_MODE …
#define R511_CAM_OPTS …
#define R511_SNAP_FRAME …
#define R511_SNAP_PXCNT …
#define R511_SNAP_LNCNT …
#define R511_SNAP_PXDIV …
#define R511_SNAP_LNDIV …
#define R511_SNAP_UV_EN …
#define R511_SNAP_OPTS …
#define R511_DRAM_FLOW_CTL …
#define R511_FIFO_OPTS …
#define R511_I2C_CTL …
#define R511_SYS_LED_CTL …
#define R511_COMP_EN …
#define R511_COMP_LUT_EN …
#define R518_GPIO_OUT …
#define R518_GPIO_CTL …
#define OV519_R10_H_SIZE …
#define OV519_R11_V_SIZE …
#define OV519_R12_X_OFFSETL …
#define OV519_R13_X_OFFSETH …
#define OV519_R14_Y_OFFSETL …
#define OV519_R15_Y_OFFSETH …
#define OV519_R16_DIVIDER …
#define OV519_R20_DFR …
#define OV519_R25_FORMAT …
#define OV519_R51_RESET1 …
#define OV519_R54_EN_CLK1 …
#define OV519_R57_SNAPSHOT …
#define OV519_GPIO_DATA_OUT0 …
#define OV519_GPIO_IO_CTRL0 …
#define OVFX2_BULK_SIZE …
#define R51x_I2C_W_SID …
#define R51x_I2C_SADDR_3 …
#define R51x_I2C_SADDR_2 …
#define R51x_I2C_R_SID …
#define R51x_I2C_DATA …
#define R518_I2C_CTL …
#define OVFX2_I2C_ADDR …
#define OV7xx0_SID …
#define OV_HIRES_SID …
#define OV8xx0_SID …
#define OV6xx0_SID …
#define OV7610_REG_GAIN …
#define OV7610_REG_BLUE …
#define OV7610_REG_RED …
#define OV7610_REG_SAT …
#define OV8610_REG_HUE …
#define OV7610_REG_CNT …
#define OV7610_REG_BRT …
#define OV7610_REG_COM_C …
#define OV7610_REG_ID_HIGH …
#define OV7610_REG_ID_LOW …
#define OV7610_REG_COM_I …
#define OV7670_R00_GAIN …
#define OV7670_R01_BLUE …
#define OV7670_R02_RED …
#define OV7670_R03_VREF …
#define OV7670_R04_COM1 …
#define OV7670_R0C_COM3 …
#define OV7670_R0D_COM4 …
#define OV7670_R0E_COM5 …
#define OV7670_R0F_COM6 …
#define OV7670_R10_AECH …
#define OV7670_R11_CLKRC …
#define OV7670_R12_COM7 …
#define OV7670_COM7_FMT_VGA …
#define OV7670_COM7_FMT_QVGA …
#define OV7670_COM7_FMT_MASK …
#define OV7670_COM7_RESET …
#define OV7670_R13_COM8 …
#define OV7670_COM8_AEC …
#define OV7670_COM8_AWB …
#define OV7670_COM8_AGC …
#define OV7670_COM8_BFILT …
#define OV7670_COM8_AECSTEP …
#define OV7670_COM8_FASTAEC …
#define OV7670_R14_COM9 …
#define OV7670_R15_COM10 …
#define OV7670_R17_HSTART …
#define OV7670_R18_HSTOP …
#define OV7670_R19_VSTART …
#define OV7670_R1A_VSTOP …
#define OV7670_R1E_MVFP …
#define OV7670_MVFP_VFLIP …
#define OV7670_MVFP_MIRROR …
#define OV7670_R24_AEW …
#define OV7670_R25_AEB …
#define OV7670_R26_VPT …
#define OV7670_R32_HREF …
#define OV7670_R3A_TSLB …
#define OV7670_R3B_COM11 …
#define OV7670_COM11_EXP …
#define OV7670_COM11_HZAUTO …
#define OV7670_R3C_COM12 …
#define OV7670_R3D_COM13 …
#define OV7670_COM13_GAMMA …
#define OV7670_COM13_UVSAT …
#define OV7670_R3E_COM14 …
#define OV7670_R3F_EDGE …
#define OV7670_R40_COM15 …
#define OV7670_R41_COM16 …
#define OV7670_COM16_AWBGAIN …
#define OV7670_R55_BRIGHT …
#define OV7670_R56_CONTRAS …
#define OV7670_R69_GFIX …
#define OV7670_R9F_HAECC1 …
#define OV7670_RA0_HAECC2 …
#define OV7670_RA5_BD50MAX …
#define OV7670_RA6_HAECC3 …
#define OV7670_RA7_HAECC4 …
#define OV7670_RA8_HAECC5 …
#define OV7670_RA9_HAECC6 …
#define OV7670_RAA_HAECC7 …
#define OV7670_RAB_BD60MAX …
struct ov_regvals { … };
struct ov_i2c_regvals { … };
static const struct ov_i2c_regvals norm_2610[] = …;
static const struct ov_i2c_regvals norm_2610ae[] = …;
static const struct ov_i2c_regvals norm_3620b[] = …;
static const struct ov_i2c_regvals norm_6x20[] = …;
static const struct ov_i2c_regvals norm_6x30[] = …;
static const struct ov_i2c_regvals norm_7610[] = …;
static const struct ov_i2c_regvals norm_7620[] = …;
static const struct ov_i2c_regvals norm_7640[] = …;
static const struct ov_regvals init_519_ov7660[] = …;
static const struct ov_i2c_regvals norm_7660[] = …;
static const struct ov_i2c_regvals norm_9600[] = …;
static const struct ov_i2c_regvals norm_7670[] = …;
static const struct ov_i2c_regvals norm_8610[] = …;
static unsigned char ov7670_abs_to_sm(unsigned char v)
{ … }
static void reg_w(struct sd *sd, u16 index, u16 value)
{ … }
static int reg_r(struct sd *sd, u16 index)
{ … }
static int reg_r8(struct sd *sd,
u16 index)
{ … }
static void reg_w_mask(struct sd *sd,
u16 index,
u8 value,
u8 mask)
{ … }
static void ov518_reg_w32(struct sd *sd, u16 index, u32 value, int n)
{ … }
static void ov511_i2c_w(struct sd *sd, u8 reg, u8 value)
{ … }
static int ov511_i2c_r(struct sd *sd, u8 reg)
{ … }
static void ov518_i2c_w(struct sd *sd,
u8 reg,
u8 value)
{ … }
static int ov518_i2c_r(struct sd *sd, u8 reg)
{ … }
static void ovfx2_i2c_w(struct sd *sd, u8 reg, u8 value)
{ … }
static int ovfx2_i2c_r(struct sd *sd, u8 reg)
{ … }
static void i2c_w(struct sd *sd, u8 reg, u8 value)
{ … }
static int i2c_r(struct sd *sd, u8 reg)
{ … }
static void i2c_w_mask(struct sd *sd,
u8 reg,
u8 value,
u8 mask)
{ … }
static inline void ov51x_stop(struct sd *sd)
{ … }
static inline void ov51x_restart(struct sd *sd)
{ … }
static void ov51x_set_slave_ids(struct sd *sd, u8 slave);
static int init_ov_sensor(struct sd *sd, u8 slave)
{ … }
static void ov51x_set_slave_ids(struct sd *sd,
u8 slave)
{ … }
static void write_regvals(struct sd *sd,
const struct ov_regvals *regvals,
int n)
{ … }
static void write_i2c_regvals(struct sd *sd,
const struct ov_i2c_regvals *regvals,
int n)
{ … }
static void ov_hires_configure(struct sd *sd)
{ … }
static void ov8xx0_configure(struct sd *sd)
{ … }
static void ov7xx0_configure(struct sd *sd)
{ … }
static void ov6xx0_configure(struct sd *sd)
{ … }
static void ov51x_led_control(struct sd *sd, int on)
{ … }
static void sd_reset_snapshot(struct gspca_dev *gspca_dev)
{ … }
static void ov51x_upload_quan_tables(struct sd *sd)
{ … }
static void ov511_configure(struct gspca_dev *gspca_dev)
{ … }
static void ov518_configure(struct gspca_dev *gspca_dev)
{ … }
static void ov519_configure(struct sd *sd)
{ … }
static void ovfx2_configure(struct sd *sd)
{ … }
static void ov519_set_mode(struct sd *sd)
{ … }
static void ov519_set_fr(struct sd *sd)
{ … }
static void setautogain(struct gspca_dev *gspca_dev, s32 val)
{ … }
static int sd_config(struct gspca_dev *gspca_dev,
const struct usb_device_id *id)
{ … }
static int sd_init(struct gspca_dev *gspca_dev)
{ … }
static int sd_isoc_init(struct gspca_dev *gspca_dev)
{ … }
static void ov511_mode_init_regs(struct sd *sd)
{ … }
static void ov518_mode_init_regs(struct sd *sd)
{ … }
static void ov519_mode_init_regs(struct sd *sd)
{ … }
static void mode_init_ov_sensor_regs(struct sd *sd)
{ … }
static void sethvflip(struct gspca_dev *gspca_dev, s32 hflip, s32 vflip)
{ … }
static void set_ov_sensor_window(struct sd *sd)
{ … }
static int sd_start(struct gspca_dev *gspca_dev)
{ … }
static void sd_stopN(struct gspca_dev *gspca_dev)
{ … }
static void sd_stop0(struct gspca_dev *gspca_dev)
{ … }
static void ov51x_handle_button(struct gspca_dev *gspca_dev, u8 state)
{ … }
static void ov511_pkt_scan(struct gspca_dev *gspca_dev,
u8 *in,
int len)
{ … }
static void ov518_pkt_scan(struct gspca_dev *gspca_dev,
u8 *data,
int len)
{ … }
static void ov519_pkt_scan(struct gspca_dev *gspca_dev,
u8 *data,
int len)
{ … }
static void ovfx2_pkt_scan(struct gspca_dev *gspca_dev,
u8 *data,
int len)
{ … }
static void sd_pkt_scan(struct gspca_dev *gspca_dev,
u8 *data,
int len)
{ … }
static void setbrightness(struct gspca_dev *gspca_dev, s32 val)
{ … }
static void setcontrast(struct gspca_dev *gspca_dev, s32 val)
{ … }
static void setexposure(struct gspca_dev *gspca_dev, s32 val)
{ … }
static void setcolors(struct gspca_dev *gspca_dev, s32 val)
{ … }
static void setautobright(struct gspca_dev *gspca_dev, s32 val)
{ … }
static void setfreq_i(struct sd *sd, s32 val)
{ … }
static void setfreq(struct gspca_dev *gspca_dev, s32 val)
{ … }
static int sd_get_jcomp(struct gspca_dev *gspca_dev,
struct v4l2_jpegcompression *jcomp)
{ … }
static int sd_set_jcomp(struct gspca_dev *gspca_dev,
const struct v4l2_jpegcompression *jcomp)
{ … }
static int sd_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
{ … }
static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
{ … }
static const struct v4l2_ctrl_ops sd_ctrl_ops = …;
static int sd_init_controls(struct gspca_dev *gspca_dev)
{ … }
static const struct sd_desc sd_desc = …;
static const struct usb_device_id device_table[] = …;
MODULE_DEVICE_TABLE(usb, device_table);
static int sd_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static struct usb_driver sd_driver = …;
module_usb_driver(…) …;
module_param(frame_rate, int, 0644);
MODULE_PARM_DESC(…) …;