V4L/DVB (11466): gspca - m5602: Let all ctrls on all sensors be static
All hail the static keyword Signed-off-by: Erik Andr?n <erik.andren@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
d4a389a39b
commit
cf811d506a
10 changed files with 137 additions and 164 deletions
|
@ -18,6 +18,13 @@
|
||||||
|
|
||||||
#include "m5602_mt9m111.h"
|
#include "m5602_mt9m111.h"
|
||||||
|
|
||||||
|
static int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
|
||||||
static struct v4l2_pix_format mt9m111_modes[] = {
|
static struct v4l2_pix_format mt9m111_modes[] = {
|
||||||
{
|
{
|
||||||
640,
|
640,
|
||||||
|
@ -123,7 +130,8 @@ int mt9m111_probe(struct sd *sd)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
sensor_found:
|
sensor_found:
|
||||||
sensor_settings = kmalloc(ARRAY_SIZE(mt9m111_ctrls) * sizeof(s32), GFP_KERNEL);
|
sensor_settings = kmalloc(ARRAY_SIZE(mt9m111_ctrls) * sizeof(s32),
|
||||||
|
GFP_KERNEL);
|
||||||
if (!sensor_settings)
|
if (!sensor_settings)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -182,7 +190,7 @@ void mt9m111_disconnect(struct sd *sd)
|
||||||
kfree(sd->sensor_priv);
|
kfree(sd->sensor_priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -193,7 +201,7 @@ int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 data[2] = {0x00, 0x00};
|
u8 data[2] = {0x00, 0x00};
|
||||||
|
@ -219,7 +227,7 @@ int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -230,7 +238,7 @@ int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 data[2] = {0x00, 0x00};
|
u8 data[2] = {0x00, 0x00};
|
||||||
|
@ -255,7 +263,7 @@ int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
static int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -266,7 +274,7 @@ int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
static int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err, tmp;
|
int err, tmp;
|
||||||
u8 data[2] = {0x00, 0x00};
|
u8 data[2] = {0x00, 0x00};
|
||||||
|
|
|
@ -87,13 +87,6 @@ int mt9m111_probe(struct sd *sd);
|
||||||
int mt9m111_init(struct sd *sd);
|
int mt9m111_init(struct sd *sd);
|
||||||
void mt9m111_disconnect(struct sd *sd);
|
void mt9m111_disconnect(struct sd *sd);
|
||||||
|
|
||||||
int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
|
|
||||||
const static struct m5602_sensor mt9m111 = {
|
const static struct m5602_sensor mt9m111 = {
|
||||||
.name = "MT9M111",
|
.name = "MT9M111",
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,25 @@
|
||||||
|
|
||||||
#include "m5602_ov9650.h"
|
#include "m5602_ov9650.h"
|
||||||
|
|
||||||
|
static int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 *val);
|
||||||
|
static int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 val);
|
||||||
|
static int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
|
||||||
/* Vertically and horizontally flips the image if matched, needed for machines
|
/* Vertically and horizontally flips the image if matched, needed for machines
|
||||||
where the sensor is mounted upside down */
|
where the sensor is mounted upside down */
|
||||||
static
|
static
|
||||||
|
@ -310,7 +329,8 @@ int ov9650_init(struct sd *sd)
|
||||||
err = m5602_write_bridge(sd, init_ov9650[i][1], data);
|
err = m5602_write_bridge(sd, init_ov9650[i][1], data);
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ov9650_set_exposure(&sd->gspca_dev, sensor_settings[EXPOSURE_IDX]);
|
err = ov9650_set_exposure(&sd->gspca_dev,
|
||||||
|
sensor_settings[EXPOSURE_IDX]);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
@ -318,11 +338,13 @@ int ov9650_init(struct sd *sd)
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = ov9650_set_red_balance(&sd->gspca_dev, sensor_settings[RED_BALANCE_IDX]);
|
err = ov9650_set_red_balance(&sd->gspca_dev,
|
||||||
|
sensor_settings[RED_BALANCE_IDX]);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = ov9650_set_blue_balance(&sd->gspca_dev, sensor_settings[BLUE_BALANCE_IDX]);
|
err = ov9650_set_blue_balance(&sd->gspca_dev,
|
||||||
|
sensor_settings[BLUE_BALANCE_IDX]);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
@ -334,11 +356,13 @@ int ov9650_init(struct sd *sd)
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = ov9650_set_auto_white_balance(&sd->gspca_dev, sensor_settings[AUTO_WHITE_BALANCE_IDX]);
|
err = ov9650_set_auto_white_balance(&sd->gspca_dev,
|
||||||
|
sensor_settings[AUTO_WHITE_BALANCE_IDX]);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = ov9650_set_auto_gain(&sd->gspca_dev, sensor_settings[AUTO_GAIN_CTRL_IDX]);
|
err = ov9650_set_auto_gain(&sd->gspca_dev,
|
||||||
|
sensor_settings[AUTO_GAIN_CTRL_IDX]);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -472,7 +496,7 @@ void ov9650_disconnect(struct sd *sd)
|
||||||
kfree(sd->sensor_priv);
|
kfree(sd->sensor_priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -482,7 +506,7 @@ int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -512,7 +536,7 @@ int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -522,7 +546,7 @@ int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
@ -553,7 +577,7 @@ int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -563,7 +587,7 @@ int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
@ -579,7 +603,7 @@ int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -590,7 +614,7 @@ int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
@ -606,7 +630,7 @@ int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -616,7 +640,7 @@ int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
@ -628,16 +652,18 @@ int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
sensor_settings[HFLIP_IDX] = val;
|
sensor_settings[HFLIP_IDX] = val;
|
||||||
|
|
||||||
if (!dmi_check_system(ov9650_flip_dmi_table))
|
if (!dmi_check_system(ov9650_flip_dmi_table))
|
||||||
i2c_data = ((val & 0x01) << 5) | (sensor_settings[VFLIP_IDX] << 4);
|
i2c_data = ((val & 0x01) << 5) |
|
||||||
|
(sensor_settings[VFLIP_IDX] << 4);
|
||||||
else
|
else
|
||||||
i2c_data = ((val & 0x01) << 5) | (!sensor_settings[VFLIP_IDX] << 4);
|
i2c_data = ((val & 0x01) << 5) |
|
||||||
|
(!sensor_settings[VFLIP_IDX] << 4);
|
||||||
|
|
||||||
err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
|
err = m5602_write_sensor(sd, OV9650_MVFP, &i2c_data, 1);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -648,7 +674,7 @@ int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
@ -673,48 +699,8 @@ int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
{
|
__s32 *val)
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
|
||||||
|
|
||||||
*val = sensor_settings[GAIN_IDX];
|
|
||||||
PDEBUG(D_V4L2, "Read gain %d", *val);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ov9650_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
u8 i2c_data;
|
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
|
||||||
|
|
||||||
PDEBUG(D_V4L2, "Set gain to %d", val);
|
|
||||||
|
|
||||||
sensor_settings[GAIN_IDX] = val;
|
|
||||||
|
|
||||||
/* Read the OV9650_VREF register first to avoid
|
|
||||||
corrupting the VREF high and low bits */
|
|
||||||
err = m5602_read_sensor(sd, OV9650_VREF, &i2c_data, 1);
|
|
||||||
if (err < 0)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
/* Mask away all uninteresting bits */
|
|
||||||
i2c_data = ((val & 0x0300) >> 2) | (i2c_data & 0x3F);
|
|
||||||
err = m5602_write_sensor(sd, OV9650_VREF, &i2c_data, 1);
|
|
||||||
if (err < 0)
|
|
||||||
return err;
|
|
||||||
|
|
||||||
/* The 8 LSBs */
|
|
||||||
i2c_data = val & 0xff;
|
|
||||||
err = m5602_write_sensor(sd, OV9650_GAIN, &i2c_data, 1);
|
|
||||||
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -723,7 +709,8 @@ int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
@ -743,7 +730,7 @@ int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
static int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -753,7 +740,7 @@ int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val)
|
static int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
|
|
|
@ -139,25 +139,6 @@ int ov9650_start(struct sd *sd);
|
||||||
int ov9650_stop(struct sd *sd);
|
int ov9650_stop(struct sd *sd);
|
||||||
void ov9650_disconnect(struct sd *sd);
|
void ov9650_disconnect(struct sd *sd);
|
||||||
|
|
||||||
int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_brightness(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_brightness(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
|
|
||||||
const static struct m5602_sensor ov9650 = {
|
const static struct m5602_sensor ov9650 = {
|
||||||
.name = "OV9650",
|
.name = "OV9650",
|
||||||
.i2c_slave_id = 0x60,
|
.i2c_slave_id = 0x60,
|
||||||
|
|
|
@ -18,6 +18,23 @@
|
||||||
|
|
||||||
#include "m5602_po1030.h"
|
#include "m5602_po1030.h"
|
||||||
|
|
||||||
|
static int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int po1030_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int po1030_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int po1030_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int po1030_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int po1030_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int po1030_set_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 val);
|
||||||
|
static int po1030_get_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 *val);
|
||||||
|
|
||||||
static struct v4l2_pix_format po1030_modes[] = {
|
static struct v4l2_pix_format po1030_modes[] = {
|
||||||
{
|
{
|
||||||
640,
|
640,
|
||||||
|
@ -277,7 +294,7 @@ int po1030_start(struct sd *sd)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -287,7 +304,7 @@ int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -315,7 +332,7 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -325,7 +342,7 @@ int po1030_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -341,7 +358,7 @@ int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -352,7 +369,7 @@ int po1030_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -374,7 +391,7 @@ int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -385,7 +402,7 @@ int po1030_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -407,7 +424,7 @@ int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -417,7 +434,7 @@ int po1030_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -433,7 +450,7 @@ int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -444,7 +461,7 @@ int po1030_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -461,7 +478,8 @@ int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
static int po1030_get_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -472,7 +490,8 @@ int po1030_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int po1030_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val)
|
static int po1030_set_auto_white_balance(struct gspca_dev *gspca_dev,
|
||||||
|
__s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
|
|
@ -151,21 +151,6 @@ int po1030_init(struct sd *sd);
|
||||||
int po1030_start(struct sd *sd);
|
int po1030_start(struct sd *sd);
|
||||||
void po1030_disconnect(struct sd *sd);
|
void po1030_disconnect(struct sd *sd);
|
||||||
|
|
||||||
int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int po1030_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int po1030_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int po1030_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
|
|
||||||
static const struct m5602_sensor po1030 = {
|
static const struct m5602_sensor po1030 = {
|
||||||
.name = "PO1030",
|
.name = "PO1030",
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,15 @@
|
||||||
|
|
||||||
#include "m5602_s5k4aa.h"
|
#include "m5602_s5k4aa.h"
|
||||||
|
|
||||||
|
static int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
|
||||||
static
|
static
|
||||||
const
|
const
|
||||||
struct dmi_system_id s5k4aa_vflip_dmi_table[] = {
|
struct dmi_system_id s5k4aa_vflip_dmi_table[] = {
|
||||||
|
@ -304,7 +313,7 @@ int s5k4aa_init(struct sd *sd)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -315,7 +324,7 @@ int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -337,7 +346,7 @@ int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -348,7 +357,7 @@ int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -396,7 +405,7 @@ int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -407,7 +416,7 @@ int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -448,7 +457,7 @@ int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
@ -458,7 +467,7 @@ int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
s32 *sensor_settings = sd->sensor_priv;
|
s32 *sensor_settings = sd->sensor_priv;
|
||||||
|
|
|
@ -68,15 +68,6 @@ int s5k4aa_init(struct sd *sd);
|
||||||
int s5k4aa_start(struct sd *sd);
|
int s5k4aa_start(struct sd *sd);
|
||||||
void s5k4aa_disconnect(struct sd *sd);
|
void s5k4aa_disconnect(struct sd *sd);
|
||||||
|
|
||||||
int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
|
|
||||||
static const struct m5602_sensor s5k4aa = {
|
static const struct m5602_sensor s5k4aa = {
|
||||||
.name = "S5K4AA",
|
.name = "S5K4AA",
|
||||||
.i2c_slave_id = 0x5a,
|
.i2c_slave_id = 0x5a,
|
||||||
|
|
|
@ -19,6 +19,17 @@
|
||||||
#include <linux/kthread.h>
|
#include <linux/kthread.h>
|
||||||
#include "m5602_s5k83a.h"
|
#include "m5602_s5k83a.h"
|
||||||
|
|
||||||
|
static int s5k83a_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k83a_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k83a_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k83a_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
static int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
||||||
|
static int s5k83a_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
||||||
|
|
||||||
static struct v4l2_pix_format s5k83a_modes[] = {
|
static struct v4l2_pix_format s5k83a_modes[] = {
|
||||||
{
|
{
|
||||||
640,
|
640,
|
||||||
|
@ -298,7 +309,7 @@ void s5k83a_disconnect(struct sd *sd)
|
||||||
kfree(sens_priv);
|
kfree(sens_priv);
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
||||||
|
@ -307,7 +318,7 @@ int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k83a_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 data[2];
|
u8 data[2];
|
||||||
|
@ -337,7 +348,7 @@ int s5k83a_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
||||||
|
@ -346,7 +357,7 @@ int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 data[1];
|
u8 data[1];
|
||||||
|
@ -359,7 +370,7 @@ int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k83a_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
||||||
|
@ -368,7 +379,7 @@ int s5k83a_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k83a_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 data[2];
|
u8 data[2];
|
||||||
|
@ -382,7 +393,7 @@ int s5k83a_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k83a_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
||||||
|
@ -421,7 +432,7 @@ int s5k83a_set_flip_real(struct gspca_dev *gspca_dev, __s32 vflip, __s32 hflip)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 reg;
|
u8 reg;
|
||||||
|
@ -445,7 +456,7 @@ int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
static int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
{
|
{
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
struct s5k83a_priv *sens_priv = sd->sensor_priv;
|
||||||
|
@ -454,7 +465,7 @@ int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int s5k83a_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
static int s5k83a_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
u8 reg;
|
u8 reg;
|
||||||
|
|
|
@ -49,17 +49,6 @@ int s5k83a_start(struct sd *sd);
|
||||||
int s5k83a_stop(struct sd *sd);
|
int s5k83a_stop(struct sd *sd);
|
||||||
void s5k83a_disconnect(struct sd *sd);
|
void s5k83a_disconnect(struct sd *sd);
|
||||||
|
|
||||||
int s5k83a_set_gain(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k83a_get_gain(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k83a_set_brightness(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k83a_get_brightness(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k83a_set_exposure(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k83a_get_exposure(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k83a_get_vflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k83a_set_vflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
int s5k83a_get_hflip(struct gspca_dev *gspca_dev, __s32 *val);
|
|
||||||
int s5k83a_set_hflip(struct gspca_dev *gspca_dev, __s32 val);
|
|
||||||
|
|
||||||
static const struct m5602_sensor s5k83a = {
|
static const struct m5602_sensor s5k83a = {
|
||||||
.name = "S5K83A",
|
.name = "S5K83A",
|
||||||
.probe = s5k83a_probe,
|
.probe = s5k83a_probe,
|
||||||
|
|
Loading…
Reference in a new issue