#ifndef GSPCAV2_H
#define GSPCAV2_H
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/usb.h>
#include <linux/videodev2.h>
#include <media/v4l2-common.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/videobuf2-v4l2.h>
#include <media/videobuf2-vmalloc.h>
#include <linux/mutex.h>
#define D_PROBE …
#define D_CONF …
#define D_STREAM …
#define D_FRAM …
#define D_PACK …
#define D_USBI …
#define D_USBO …
extern int gspca_debug;
#define gspca_dbg(gspca_dev, level, fmt, ...) …
#define gspca_err(gspca_dev, fmt, ...) …
#define GSPCA_MAX_FRAMES …
#define MAX_NURBS …
struct framerates { … };
struct cam { … };
struct gspca_dev;
struct gspca_frame;
cam_op;
cam_v_op;
cam_cf_op;
cam_get_jpg_op;
cam_set_jpg_op;
cam_get_reg_op;
cam_set_reg_op;
cam_chip_info_op;
cam_streamparm_op;
cam_pkt_op;
cam_int_pkt_op;
cam_format_op;
cam_frmsize_op;
struct sd_desc { … };
enum gspca_packet_type { … };
struct gspca_buffer { … };
static inline struct gspca_buffer *to_gspca_buffer(struct vb2_buffer *vb2)
{ … }
struct gspca_dev { … };
int gspca_dev_probe(struct usb_interface *intf,
const struct usb_device_id *id,
const struct sd_desc *sd_desc,
int dev_size,
struct module *module);
int gspca_dev_probe2(struct usb_interface *intf,
const struct usb_device_id *id,
const struct sd_desc *sd_desc,
int dev_size,
struct module *module);
void gspca_disconnect(struct usb_interface *intf);
void gspca_frame_add(struct gspca_dev *gspca_dev,
enum gspca_packet_type packet_type,
const u8 *data,
int len);
#ifdef CONFIG_PM
int gspca_suspend(struct usb_interface *intf, pm_message_t message);
int gspca_resume(struct usb_interface *intf);
#endif
int gspca_expo_autogain(struct gspca_dev *gspca_dev, int avg_lum,
int desired_avg_lum, int deadzone, int gain_knee, int exposure_knee);
int gspca_coarse_grained_expo_autogain(struct gspca_dev *gspca_dev,
int avg_lum, int desired_avg_lum, int deadzone);
#endif