linux/drivers/media/usb/gspca/gspca.h

/* SPDX-License-Identifier: GPL-2.0 */
#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>



/* GSPCA debug codes */

#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
/* image transfers */
#define MAX_NURBS


/* used to list framerates supported by a camera mode (resolution) */
struct framerates {};

/* device information - set at probe time */
struct cam {};

struct gspca_dev;
struct gspca_frame;

/* subdriver operations */
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;

/* subdriver description */
struct sd_desc {};

/* packet types when moving from iso buf to frame buf */
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 /* GSPCAV2_H */