Commit 98819187 authored by Jean-Francois Moine's avatar Jean-Francois Moine Committed by Mauro Carvalho Chehab

V4L/DVB (10372): gspca - sonixj: Cleanup code.

Signed-off-by: default avatarJean-Francois Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent a48196a2
...@@ -36,28 +36,28 @@ struct sd { ...@@ -36,28 +36,28 @@ struct sd {
struct gspca_dev gspca_dev; /* !! must be the first item */ struct gspca_dev gspca_dev; /* !! must be the first item */
atomic_t avg_lum; atomic_t avg_lum;
unsigned int exposure; u32 exposure;
__u16 brightness; u16 brightness;
__u8 contrast; u8 contrast;
__u8 colors; u8 colors;
__u8 autogain; u8 autogain;
__u8 blue; u8 blue;
__u8 red; u8 red;
u8 gamma; u8 gamma;
__u8 vflip; /* ov7630 only */ u8 vflip; /* ov7630 only */
__u8 infrared; /* mi0360 only */ u8 infrared; /* mi0360 only */
__s8 ag_cnt; s8 ag_cnt;
#define AG_CNT_START 13 #define AG_CNT_START 13
__u8 bridge; u8 bridge;
#define BRIDGE_SN9C102P 0 #define BRIDGE_SN9C102P 0
#define BRIDGE_SN9C105 1 #define BRIDGE_SN9C105 1
#define BRIDGE_SN9C110 2 #define BRIDGE_SN9C110 2
#define BRIDGE_SN9C120 3 #define BRIDGE_SN9C120 3
#define BRIDGE_SN9C325 4 #define BRIDGE_SN9C325 4
__u8 sensor; /* Type of image sensor chip */ u8 sensor; /* Type of image sensor chip */
#define SENSOR_HV7131R 0 #define SENSOR_HV7131R 0
#define SENSOR_MI0360 1 #define SENSOR_MI0360 1
#define SENSOR_MO4000 2 #define SENSOR_MO4000 2
...@@ -65,7 +65,7 @@ struct sd { ...@@ -65,7 +65,7 @@ struct sd {
#define SENSOR_OV7630 4 #define SENSOR_OV7630 4
#define SENSOR_OV7648 5 #define SENSOR_OV7648 5
#define SENSOR_OV7660 6 #define SENSOR_OV7660 6
__u8 i2c_base; u8 i2c_base;
}; };
/* V4L2 controls supported by the driver */ /* V4L2 controls supported by the driver */
...@@ -349,20 +349,20 @@ static const u8 *sn_tb[] = { ...@@ -349,20 +349,20 @@ static const u8 *sn_tb[] = {
sn_ov7660 sn_ov7660
}; };
static const __u8 gamma_def[17] = { static const u8 gamma_def[17] = {
0x00, 0x2d, 0x46, 0x5a, 0x6c, 0x7c, 0x8b, 0x99, 0x00, 0x2d, 0x46, 0x5a, 0x6c, 0x7c, 0x8b, 0x99,
0xa6, 0xb2, 0xbf, 0xca, 0xd5, 0xe0, 0xeb, 0xf5, 0xff 0xa6, 0xb2, 0xbf, 0xca, 0xd5, 0xe0, 0xeb, 0xf5, 0xff
}; };
/* color matrix and offsets */ /* color matrix and offsets */
static const __u8 reg84[] = { static const u8 reg84[] = {
0x14, 0x00, 0x27, 0x00, 0x07, 0x00, /* YR YG YB gains */ 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, /* YR YG YB gains */
0xe8, 0x0f, 0xda, 0x0f, 0x40, 0x00, /* UR UG UB */ 0xe8, 0x0f, 0xda, 0x0f, 0x40, 0x00, /* UR UG UB */
0x3e, 0x00, 0xcd, 0x0f, 0xf7, 0x0f, /* VR VG VB */ 0x3e, 0x00, 0xcd, 0x0f, 0xf7, 0x0f, /* VR VG VB */
0x00, 0x00, 0x00 /* YUV offsets */ 0x00, 0x00, 0x00 /* YUV offsets */
}; };
static const __u8 hv7131r_sensor_init[][8] = { static const u8 hv7131r_sensor_init[][8] = {
{0xc1, 0x11, 0x01, 0x08, 0x01, 0x00, 0x00, 0x10}, {0xc1, 0x11, 0x01, 0x08, 0x01, 0x00, 0x00, 0x10},
{0xb1, 0x11, 0x34, 0x17, 0x7f, 0x00, 0x00, 0x10}, {0xb1, 0x11, 0x34, 0x17, 0x7f, 0x00, 0x00, 0x10},
{0xd1, 0x11, 0x40, 0xff, 0x7f, 0x7f, 0x7f, 0x10}, {0xd1, 0x11, 0x40, 0xff, 0x7f, 0x7f, 0x7f, 0x10},
...@@ -393,9 +393,9 @@ static const __u8 hv7131r_sensor_init[][8] = { ...@@ -393,9 +393,9 @@ static const __u8 hv7131r_sensor_init[][8] = {
{0xa1, 0x11, 0x23, 0x10, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x11, 0x23, 0x10, 0x00, 0x00, 0x00, 0x10},
{} {}
}; };
static const __u8 mi0360_sensor_init[][8] = { static const u8 mi0360_sensor_init[][8] = {
{0xb1, 0x5d, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10}, {0xb1, 0x5d, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10},
{0xb1, 0x5d, 0x0D, 0x00, 0x01, 0x00, 0x00, 0x10}, {0xb1, 0x5d, 0x0d, 0x00, 0x01, 0x00, 0x00, 0x10},
{0xb1, 0x5d, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xb1, 0x5d, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x10},
{0xd1, 0x5d, 0x01, 0x00, 0x08, 0x00, 0x16, 0x10}, {0xd1, 0x5d, 0x01, 0x00, 0x08, 0x00, 0x16, 0x10},
{0xd1, 0x5d, 0x03, 0x01, 0xe2, 0x02, 0x82, 0x10}, {0xd1, 0x5d, 0x03, 0x01, 0xe2, 0x02, 0x82, 0x10},
...@@ -416,7 +416,7 @@ static const __u8 mi0360_sensor_init[][8] = { ...@@ -416,7 +416,7 @@ static const __u8 mi0360_sensor_init[][8] = {
{0xd1, 0x5d, 0x22, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xd1, 0x5d, 0x22, 0x00, 0x00, 0x00, 0x00, 0x10},
{0xd1, 0x5d, 0x24, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xd1, 0x5d, 0x24, 0x00, 0x00, 0x00, 0x00, 0x10},
{0xd1, 0x5d, 0x26, 0x00, 0x00, 0x00, 0x24, 0x10}, {0xd1, 0x5d, 0x26, 0x00, 0x00, 0x00, 0x24, 0x10},
{0xd1, 0x5d, 0x2F, 0xF7, 0xB0, 0x00, 0x04, 0x10}, {0xd1, 0x5d, 0x2f, 0xf7, 0xB0, 0x00, 0x04, 0x10},
{0xd1, 0x5d, 0x31, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xd1, 0x5d, 0x31, 0x00, 0x00, 0x00, 0x00, 0x10},
{0xd1, 0x5d, 0x33, 0x00, 0x00, 0x01, 0x00, 0x10}, {0xd1, 0x5d, 0x33, 0x00, 0x00, 0x01, 0x00, 0x10},
{0xb1, 0x5d, 0x3d, 0x06, 0x8f, 0x00, 0x00, 0x10}, {0xb1, 0x5d, 0x3d, 0x06, 0x8f, 0x00, 0x00, 0x10},
...@@ -447,7 +447,7 @@ static const __u8 mi0360_sensor_init[][8] = { ...@@ -447,7 +447,7 @@ static const __u8 mi0360_sensor_init[][8] = {
{0xb1, 0x5d, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10}, /* sensor on */ {0xb1, 0x5d, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10}, /* sensor on */
{} {}
}; };
static const __u8 mo4000_sensor_init[][8] = { static const u8 mo4000_sensor_init[][8] = {
{0xa1, 0x21, 0x01, 0x02, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x01, 0x02, 0x00, 0x00, 0x00, 0x10},
{0xa1, 0x21, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10},
{0xa1, 0x21, 0x03, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x03, 0x00, 0x00, 0x00, 0x00, 0x10},
...@@ -470,7 +470,7 @@ static const __u8 mo4000_sensor_init[][8] = { ...@@ -470,7 +470,7 @@ static const __u8 mo4000_sensor_init[][8] = {
{0xa1, 0x21, 0x11, 0x38, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x11, 0x38, 0x00, 0x00, 0x00, 0x10},
{} {}
}; };
static __u8 om6802_sensor_init[][8] = { static const u8 om6802_sensor_init[][8] = {
{0xa0, 0x34, 0x90, 0x05, 0x00, 0x00, 0x00, 0x10}, {0xa0, 0x34, 0x90, 0x05, 0x00, 0x00, 0x00, 0x10},
{0xa0, 0x34, 0x49, 0x85, 0x00, 0x00, 0x00, 0x10}, {0xa0, 0x34, 0x49, 0x85, 0x00, 0x00, 0x00, 0x10},
{0xa0, 0x34, 0x5a, 0xc0, 0x00, 0x00, 0x00, 0x10}, {0xa0, 0x34, 0x5a, 0xc0, 0x00, 0x00, 0x00, 0x10},
...@@ -504,7 +504,7 @@ static __u8 om6802_sensor_init[][8] = { ...@@ -504,7 +504,7 @@ static __u8 om6802_sensor_init[][8] = {
/* {0xa0, 0x34, 0x69, 0x01, 0x00, 0x00, 0x00, 0x10}, */ /* {0xa0, 0x34, 0x69, 0x01, 0x00, 0x00, 0x00, 0x10}, */
{} {}
}; };
static const __u8 ov7630_sensor_init[][8] = { static const u8 ov7630_sensor_init[][8] = {
{0xa1, 0x21, 0x76, 0x01, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x76, 0x01, 0x00, 0x00, 0x00, 0x10},
{0xa1, 0x21, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10},
/* win: delay 20ms */ /* win: delay 20ms */
...@@ -558,7 +558,7 @@ static const __u8 ov7630_sensor_init[][8] = { ...@@ -558,7 +558,7 @@ static const __u8 ov7630_sensor_init[][8] = {
{} {}
}; };
static const __u8 ov7648_sensor_init[][8] = { static const u8 ov7648_sensor_init[][8] = {
{0xa1, 0x21, 0x76, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x76, 0x00, 0x00, 0x00, 0x00, 0x10},
{0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset */ {0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset */
{0xa1, 0x21, 0x12, 0x00, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x12, 0x00, 0x00, 0x00, 0x00, 0x10},
...@@ -604,7 +604,7 @@ static const __u8 ov7648_sensor_init[][8] = { ...@@ -604,7 +604,7 @@ static const __u8 ov7648_sensor_init[][8] = {
{} {}
}; };
static const __u8 ov7660_sensor_init[][8] = { static const u8 ov7660_sensor_init[][8] = {
{0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset SCCB */ {0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset SCCB */
/* (delay 20ms) */ /* (delay 20ms) */
{0xa1, 0x21, 0x12, 0x05, 0x00, 0x00, 0x00, 0x10}, {0xa1, 0x21, 0x12, 0x05, 0x00, 0x00, 0x00, 0x10},
...@@ -693,28 +693,28 @@ static const __u8 ov7660_sensor_init[][8] = { ...@@ -693,28 +693,28 @@ static const __u8 ov7660_sensor_init[][8] = {
{} {}
}; };
static const __u8 qtable4[] = { static const u8 qtable4[] = {
0x06, 0x04, 0x04, 0x06, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x04, 0x04, 0x06, 0x04, 0x04, 0x06, 0x06,
0x06, 0x08, 0x0a, 0x11, 0x06, 0x06, 0x08, 0x06, 0x06, 0x08, 0x0a, 0x11,
0x0a, 0x0a, 0x08, 0x08, 0x0a, 0x15, 0x0f, 0x0f, 0x0c, 0x11, 0x19, 0x15, 0x0a, 0x0a, 0x08, 0x08, 0x0a, 0x15, 0x0f, 0x0f,
0x19, 0x19, 0x17, 0x15, 0x0c, 0x11, 0x19, 0x15, 0x19, 0x19, 0x17, 0x15,
0x17, 0x17, 0x1b, 0x1d, 0x25, 0x21, 0x1b, 0x1d, 0x23, 0x1d, 0x17, 0x17, 0x17, 0x17, 0x1b, 0x1d, 0x25, 0x21, 0x1b, 0x1d,
0x21, 0x2e, 0x21, 0x23, 0x23, 0x1d, 0x17, 0x17, 0x21, 0x2e, 0x21, 0x23,
0x27, 0x29, 0x2c, 0x2c, 0x2c, 0x19, 0x1f, 0x30, 0x32, 0x2e, 0x29, 0x32, 0x27, 0x29, 0x2c, 0x2c, 0x2c, 0x19, 0x1f, 0x30,
0x25, 0x29, 0x2c, 0x29, 0x32, 0x2e, 0x29, 0x32, 0x25, 0x29, 0x2c, 0x29,
0x06, 0x08, 0x08, 0x0a, 0x08, 0x0a, 0x13, 0x0a, 0x0a, 0x13, 0x29, 0x1b, 0x06, 0x08, 0x08, 0x0a, 0x08, 0x0a, 0x13, 0x0a,
0x17, 0x1b, 0x29, 0x29, 0x0a, 0x13, 0x29, 0x1b, 0x17, 0x1b, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29
}; };
/* read <len> bytes to gspca_dev->usb_buf */ /* read <len> bytes to gspca_dev->usb_buf */
static void reg_r(struct gspca_dev *gspca_dev, static void reg_r(struct gspca_dev *gspca_dev,
__u16 value, int len) u16 value, int len)
{ {
#ifdef GSPCA_DEBUG #ifdef GSPCA_DEBUG
if (len > USB_BUF_SZ) { if (len > USB_BUF_SZ) {
...@@ -733,8 +733,8 @@ static void reg_r(struct gspca_dev *gspca_dev, ...@@ -733,8 +733,8 @@ static void reg_r(struct gspca_dev *gspca_dev,
} }
static void reg_w1(struct gspca_dev *gspca_dev, static void reg_w1(struct gspca_dev *gspca_dev,
__u16 value, u16 value,
__u8 data) u8 data)
{ {
PDEBUG(D_USBO, "reg_w1 [%02x] = %02x", value, data); PDEBUG(D_USBO, "reg_w1 [%02x] = %02x", value, data);
gspca_dev->usb_buf[0] = data; gspca_dev->usb_buf[0] = data;
...@@ -748,8 +748,8 @@ static void reg_w1(struct gspca_dev *gspca_dev, ...@@ -748,8 +748,8 @@ static void reg_w1(struct gspca_dev *gspca_dev,
500); 500);
} }
static void reg_w(struct gspca_dev *gspca_dev, static void reg_w(struct gspca_dev *gspca_dev,
__u16 value, u16 value,
const __u8 *buffer, const u8 *buffer,
int len) int len)
{ {
PDEBUG(D_USBO, "reg_w [%02x] = %02x %02x ..", PDEBUG(D_USBO, "reg_w [%02x] = %02x %02x ..",
...@@ -771,7 +771,7 @@ static void reg_w(struct gspca_dev *gspca_dev, ...@@ -771,7 +771,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
} }
/* I2C write 1 byte */ /* I2C write 1 byte */
static void i2c_w1(struct gspca_dev *gspca_dev, __u8 reg, __u8 val) static void i2c_w1(struct gspca_dev *gspca_dev, u8 reg, u8 val)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
...@@ -796,7 +796,7 @@ static void i2c_w1(struct gspca_dev *gspca_dev, __u8 reg, __u8 val) ...@@ -796,7 +796,7 @@ static void i2c_w1(struct gspca_dev *gspca_dev, __u8 reg, __u8 val)
/* I2C write 8 bytes */ /* I2C write 8 bytes */
static void i2c_w8(struct gspca_dev *gspca_dev, static void i2c_w8(struct gspca_dev *gspca_dev,
const __u8 *buffer) const u8 *buffer)
{ {
memcpy(gspca_dev->usb_buf, buffer, 8); memcpy(gspca_dev->usb_buf, buffer, 8);
usb_control_msg(gspca_dev->dev, usb_control_msg(gspca_dev->dev,
...@@ -810,10 +810,10 @@ static void i2c_w8(struct gspca_dev *gspca_dev, ...@@ -810,10 +810,10 @@ static void i2c_w8(struct gspca_dev *gspca_dev,
} }
/* read 5 bytes in gspca_dev->usb_buf */ /* read 5 bytes in gspca_dev->usb_buf */
static void i2c_r5(struct gspca_dev *gspca_dev, __u8 reg) static void i2c_r5(struct gspca_dev *gspca_dev, u8 reg)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
__u8 mode[8]; u8 mode[8];
mode[0] = 0x81 | 0x10; mode[0] = 0x81 | 0x10;
mode[1] = sd->i2c_base; mode[1] = sd->i2c_base;
...@@ -855,15 +855,15 @@ static int probesensor(struct gspca_dev *gspca_dev) ...@@ -855,15 +855,15 @@ static int probesensor(struct gspca_dev *gspca_dev)
} }
static int configure_gpio(struct gspca_dev *gspca_dev, static int configure_gpio(struct gspca_dev *gspca_dev,
const __u8 *sn9c1xx) const u8 *sn9c1xx)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
const __u8 *reg9a; const u8 *reg9a;
static const __u8 reg9a_def[] = static const u8 reg9a_def[] =
{0x08, 0x40, 0x20, 0x10, 0x00, 0x04}; {0x08, 0x40, 0x20, 0x10, 0x00, 0x04};
static const __u8 reg9a_sn9c325[] = static const u8 reg9a_sn9c325[] =
{0x0a, 0x40, 0x38, 0x30, 0x00, 0x20}; {0x0a, 0x40, 0x38, 0x30, 0x00, 0x20};
static const __u8 regd4[] = {0x60, 0x00, 0x00}; static const u8 regd4[] = {0x60, 0x00, 0x00};
reg_w1(gspca_dev, 0xf1, 0x00); reg_w1(gspca_dev, 0xf1, 0x00);
reg_w1(gspca_dev, 0x01, sn9c1xx[1]); reg_w1(gspca_dev, 0x01, sn9c1xx[1]);
...@@ -931,7 +931,7 @@ static int configure_gpio(struct gspca_dev *gspca_dev, ...@@ -931,7 +931,7 @@ static int configure_gpio(struct gspca_dev *gspca_dev,
static void hv7131R_InitSensor(struct gspca_dev *gspca_dev) static void hv7131R_InitSensor(struct gspca_dev *gspca_dev)
{ {
int i = 0; int i = 0;
static const __u8 SetSensorClk[] = /* 0x08 Mclk */ static const u8 SetSensorClk[] = /* 0x08 Mclk */
{ 0xa1, 0x11, 0x01, 0x18, 0x00, 0x00, 0x00, 0x10 }; { 0xa1, 0x11, 0x01, 0x18, 0x00, 0x00, 0x00, 0x10 };
while (hv7131r_sensor_init[i][0]) { while (hv7131r_sensor_init[i][0]) {
...@@ -1059,8 +1059,8 @@ static int sd_config(struct gspca_dev *gspca_dev, ...@@ -1059,8 +1059,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
static int sd_init(struct gspca_dev *gspca_dev) static int sd_init(struct gspca_dev *gspca_dev)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
__u8 regGpio[] = { 0x29, 0x74 }; u8 regGpio[] = { 0x29, 0x74 };
__u8 regF1; u8 regF1;
/* setup a selector by bridge */ /* setup a selector by bridge */
reg_w1(gspca_dev, 0xf1, 0x01); reg_w1(gspca_dev, 0xf1, 0x01);
...@@ -1100,20 +1100,14 @@ static int sd_init(struct gspca_dev *gspca_dev) ...@@ -1100,20 +1100,14 @@ static int sd_init(struct gspca_dev *gspca_dev)
return 0; return 0;
} }
static unsigned int setexposure(struct gspca_dev *gspca_dev, static u32 setexposure(struct gspca_dev *gspca_dev,
unsigned int expo) u32 expo)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
static const __u8 doit[] = /* update sensor */
{ 0xb1, 0x5d, 0x07, 0x00, 0x03, 0x00, 0x00, 0x10 };
static const __u8 sensorgo[] = /* sensor on */
{ 0xb1, 0x5d, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10 };
static const __u8 gainMo[] =
{ 0xa1, 0x21, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1d };
switch (sd->sensor) { switch (sd->sensor) {
case SENSOR_HV7131R: { case SENSOR_HV7131R: {
__u8 Expodoit[] = u8 Expodoit[] =
{ 0xc1, 0x11, 0x25, 0x07, 0x27, 0xc0, 0x00, 0x16 }; { 0xc1, 0x11, 0x25, 0x07, 0x27, 0xc0, 0x00, 0x16 };
Expodoit[3] = expo >> 16; Expodoit[3] = expo >> 16;
...@@ -1123,8 +1117,12 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev, ...@@ -1123,8 +1117,12 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev,
break; break;
} }
case SENSOR_MI0360: { case SENSOR_MI0360: {
__u8 expoMi[] = /* exposure 0x0635 -> 4 fp/s 0x10 */ u8 expoMi[] = /* exposure 0x0635 -> 4 fp/s 0x10 */
{ 0xb1, 0x5d, 0x09, 0x06, 0x35, 0x00, 0x00, 0x16 }; { 0xb1, 0x5d, 0x09, 0x06, 0x35, 0x00, 0x00, 0x16 };
static const u8 doit[] = /* update sensor */
{ 0xb1, 0x5d, 0x07, 0x00, 0x03, 0x00, 0x00, 0x10 };
static const u8 sensorgo[] = /* sensor on */
{ 0xb1, 0x5d, 0x07, 0x00, 0x02, 0x00, 0x00, 0x10 };
if (expo > 0x0635) if (expo > 0x0635)
expo = 0x0635; expo = 0x0635;
...@@ -1138,10 +1136,12 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev, ...@@ -1138,10 +1136,12 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev,
break; break;
} }
case SENSOR_MO4000: { case SENSOR_MO4000: {
__u8 expoMof[] = u8 expoMof[] =
{ 0xa1, 0x21, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x10 }; { 0xa1, 0x21, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x10 };
__u8 expoMo10[] = u8 expoMo10[] =
{ 0xa1, 0x21, 0x10, 0x20, 0x00, 0x00, 0x00, 0x10 }; { 0xa1, 0x21, 0x10, 0x20, 0x00, 0x00, 0x00, 0x10 };
static const u8 gainMo[] =
{ 0xa1, 0x21, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1d };
if (expo > 0x1fff) if (expo > 0x1fff)
expo = 0x1fff; expo = 0x1fff;
...@@ -1160,7 +1160,7 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev, ...@@ -1160,7 +1160,7 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev,
break; break;
} }
case SENSOR_OM6802: { case SENSOR_OM6802: {
__u8 gainOm[] = u8 gainOm[] =
{ 0xa0, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x10 }; { 0xa0, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x10 };
if (expo > 0x03ff) if (expo > 0x03ff)
...@@ -1181,7 +1181,7 @@ static void setbrightness(struct gspca_dev *gspca_dev) ...@@ -1181,7 +1181,7 @@ static void setbrightness(struct gspca_dev *gspca_dev)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
unsigned int expo; unsigned int expo;
__u8 k2; u8 k2;
k2 = ((int) sd->brightness - 0x8000) >> 10; k2 = ((int) sd->brightness - 0x8000) >> 10;
switch (sd->sensor) { switch (sd->sensor) {
...@@ -1211,8 +1211,8 @@ static void setbrightness(struct gspca_dev *gspca_dev) ...@@ -1211,8 +1211,8 @@ static void setbrightness(struct gspca_dev *gspca_dev)
static void setcontrast(struct gspca_dev *gspca_dev) static void setcontrast(struct gspca_dev *gspca_dev)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
__u8 k2; u8 k2;
__u8 contrast[6]; u8 contrast[6];
k2 = sd->contrast * 0x30 / (CONTRAST_MAX + 1) + 0x10; /* 10..40 */ k2 = sd->contrast * 0x30 / (CONTRAST_MAX + 1) + 0x10; /* 10..40 */
contrast[0] = (k2 + 1) / 2; /* red */ contrast[0] = (k2 + 1) / 2; /* red */
...@@ -1228,8 +1228,8 @@ static void setcolors(struct gspca_dev *gspca_dev) ...@@ -1228,8 +1228,8 @@ static void setcolors(struct gspca_dev *gspca_dev)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
int i, v; int i, v;
__u8 reg8a[12]; /* U & V gains */ u8 reg8a[12]; /* U & V gains */
static __s16 uv[6] = { /* same as reg84 in signed decimal */ static s16 uv[6] = { /* same as reg84 in signed decimal */
-24, -38, 64, /* UR UG UB */ -24, -38, 64, /* UR UG UB */
62, -51, -9 /* VR VG VB */ 62, -51, -9 /* VR VG VB */
}; };
...@@ -1297,13 +1297,13 @@ static int sd_start(struct gspca_dev *gspca_dev) ...@@ -1297,13 +1297,13 @@ static int sd_start(struct gspca_dev *gspca_dev)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
int i; int i;
__u8 reg1, reg17, reg18; u8 reg1, reg17, reg18;
const __u8 *sn9c1xx; const u8 *sn9c1xx;
int mode; int mode;
static const __u8 C0[] = { 0x2d, 0x2d, 0x3a, 0x05, 0x04, 0x3f }; static const u8 C0[] = { 0x2d, 0x2d, 0x3a, 0x05, 0x04, 0x3f };
static const __u8 CA[] = { 0x28, 0xd8, 0x14, 0xec }; static const u8 CA[] = { 0x28, 0xd8, 0x14, 0xec };
static const __u8 CE[] = { 0x32, 0xdd, 0x2d, 0xdd }; /* MI0360 */ static const u8 CE[] = { 0x32, 0xdd, 0x2d, 0xdd }; /* MI0360 */
static const __u8 CE_ov76xx[] = static const u8 CE_ov76xx[] =
{ 0x32, 0xdd, 0x32, 0xdd }; { 0x32, 0xdd, 0x32, 0xdd };
sn9c1xx = sn_tb[(int) sd->sensor]; sn9c1xx = sn_tb[(int) sd->sensor];
...@@ -1460,14 +1460,14 @@ static int sd_start(struct gspca_dev *gspca_dev) ...@@ -1460,14 +1460,14 @@ static int sd_start(struct gspca_dev *gspca_dev)
static void sd_stopN(struct gspca_dev *gspca_dev) static void sd_stopN(struct gspca_dev *gspca_dev)
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
static const __u8 stophv7131[] = static const u8 stophv7131[] =
{ 0xa1, 0x11, 0x02, 0x09, 0x00, 0x00, 0x00, 0x10 }; { 0xa1, 0x11, 0x02, 0x09, 0x00, 0x00, 0x00, 0x10 };
static const __u8 stopmi0360[] = static const u8 stopmi0360[] =
{ 0xb1, 0x5d, 0x07, 0x00, 0x00, 0x00, 0x00, 0x10 }; { 0xb1, 0x5d, 0x07, 0x00, 0x00, 0x00, 0x00, 0x10 };
static const __u8 stopov7648[] = static const u8 stopov7648[] =
{ 0xa1, 0x21, 0x76, 0x20, 0x00, 0x00, 0x00, 0x10 }; { 0xa1, 0x21, 0x76, 0x20, 0x00, 0x00, 0x00, 0x10 };
__u8 data; u8 data;
const __u8 *sn9c1xx; const u8 *sn9c1xx;
data = 0x0b; data = 0x0b;
switch (sd->sensor) { switch (sd->sensor) {
...@@ -1503,8 +1503,8 @@ static void do_autogain(struct gspca_dev *gspca_dev) ...@@ -1503,8 +1503,8 @@ static void do_autogain(struct gspca_dev *gspca_dev)
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
int delta; int delta;
int expotimes; int expotimes;
__u8 luma_mean = 130; u8 luma_mean = 130;
__u8 luma_delta = 20; u8 luma_delta = 20;
/* Thanks S., without your advice, autobright should not work :) */ /* Thanks S., without your advice, autobright should not work :) */
if (sd->ag_cnt < 0) if (sd->ag_cnt < 0)
...@@ -1546,7 +1546,7 @@ static void do_autogain(struct gspca_dev *gspca_dev) ...@@ -1546,7 +1546,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
/* This function is run at interrupt level. */ /* This function is run at interrupt level. */
static void sd_pkt_scan(struct gspca_dev *gspca_dev, static void sd_pkt_scan(struct gspca_dev *gspca_dev,
struct gspca_frame *frame, /* target */ struct gspca_frame *frame, /* target */
__u8 *data, /* isoc packet */ u8 *data, /* isoc packet */
int len) /* iso packet length */ int len) /* iso packet length */
{ {
struct sd *sd = (struct sd *) gspca_dev; struct sd *sd = (struct sd *) gspca_dev;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment