#define pr_fmt(fmt) …
#include "m5602_ov9650.h"
#include "m5602_ov7660.h"
#include "m5602_mt9m111.h"
#include "m5602_po1030.h"
#include "m5602_s5k83a.h"
#include "m5602_s5k4aa.h"
int force_sensor;
static bool dump_bridge;
bool dump_sensor;
static const struct usb_device_id m5602_table[] = …;
MODULE_DEVICE_TABLE(usb, m5602_table);
static const unsigned char sensor_urb_skeleton[] = …;
static const unsigned char bridge_urb_skeleton[] = …;
int m5602_read_bridge(struct sd *sd, const u8 address, u8 *i2c_data)
{ … }
int m5602_write_bridge(struct sd *sd, const u8 address, const u8 i2c_data)
{ … }
static int m5602_wait_for_i2c(struct sd *sd)
{ … }
int m5602_read_sensor(struct sd *sd, const u8 address,
u8 *i2c_data, const u8 len)
{ … }
int m5602_write_sensor(struct sd *sd, const u8 address,
u8 *i2c_data, const u8 len)
{ … }
static void m5602_dump_bridge(struct sd *sd)
{ … }
static int m5602_probe_sensor(struct sd *sd)
{ … }
static int m5602_configure(struct gspca_dev *gspca_dev,
const struct usb_device_id *id);
static int m5602_init(struct gspca_dev *gspca_dev)
{ … }
static int m5602_init_controls(struct gspca_dev *gspca_dev)
{ … }
static int m5602_start_transfer(struct gspca_dev *gspca_dev)
{ … }
static void m5602_urb_complete(struct gspca_dev *gspca_dev,
u8 *data, int len)
{ … }
static void m5602_stop_transfer(struct gspca_dev *gspca_dev)
{ … }
static const struct sd_desc sd_desc = …;
static int m5602_configure(struct gspca_dev *gspca_dev,
const struct usb_device_id *id)
{ … }
static int m5602_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static void m5602_disconnect(struct usb_interface *intf)
{ … }
static struct usb_driver sd_driver = …;
module_usb_driver(…) …;
MODULE_AUTHOR(…);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;
module_param(force_sensor, int, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(…) …;
module_param(dump_bridge, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(…) …;
module_param(dump_sensor, bool, S_IRUGO | S_IWUSR);
MODULE_PARM_DESC(…) …;