V4L/DVB (9280): gspca: Use the gspca debug macros
Signed-off-by: Erik Andren <erik.andren@gmail.com> Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
0c505e688b
commit
17ea88ae95
|
@ -25,33 +25,6 @@
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#undef PDEBUG
|
|
||||||
#undef info
|
|
||||||
#undef err
|
|
||||||
|
|
||||||
#define err(format, arg...) printk(KERN_ERR KBUILD_MODNAME ": " \
|
|
||||||
format "\n" , ## arg)
|
|
||||||
#define info(format, arg...) printk(KERN_INFO KBUILD_MODNAME ": " \
|
|
||||||
format "\n" , ## arg)
|
|
||||||
|
|
||||||
/* Debug parameters */
|
|
||||||
#define DBG_INIT 0x1
|
|
||||||
#define DBG_PROBE 0x2
|
|
||||||
#define DBG_V4L2 0x4
|
|
||||||
#define DBG_TRACE 0x8
|
|
||||||
#define DBG_DATA 0x10
|
|
||||||
#define DBG_V4L2_CID 0x20
|
|
||||||
#define DBG_GSPCA 0x40
|
|
||||||
|
|
||||||
#define PDEBUG(level, fmt, args...) \
|
|
||||||
do { \
|
|
||||||
if (m5602_debug & level) \
|
|
||||||
info("[%s:%d] " fmt, __func__, __LINE__ , \
|
|
||||||
## args); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
#define M5602_XB_SENSOR_TYPE 0x00
|
#define M5602_XB_SENSOR_TYPE 0x00
|
||||||
#define M5602_XB_SENSOR_CTRL 0x01
|
#define M5602_XB_SENSOR_CTRL 0x01
|
||||||
#define M5602_XB_LINE_OF_FRAME_H 0x02
|
#define M5602_XB_LINE_OF_FRAME_H 0x02
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* USB Driver for ALi m5602 based webcams
|
* USB Driver for ALi m5602 based webcams
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008 Erik Andrén
|
* Copyright (C) 2008 Erik Andrén
|
||||||
|
@ -26,7 +26,6 @@
|
||||||
int force_sensor;
|
int force_sensor;
|
||||||
int dump_bridge;
|
int dump_bridge;
|
||||||
int dump_sensor;
|
int dump_sensor;
|
||||||
unsigned int m5602_debug;
|
|
||||||
|
|
||||||
static const __devinitdata struct usb_device_id m5602_table[] = {
|
static const __devinitdata struct usb_device_id m5602_table[] = {
|
||||||
{USB_DEVICE(0x0402, 0x5602)},
|
{USB_DEVICE(0x0402, 0x5602)},
|
||||||
|
@ -48,7 +47,7 @@ int m5602_read_bridge(struct sd *sd, u8 address, u8 *i2c_data)
|
||||||
1, M5602_URB_MSG_TIMEOUT);
|
1, M5602_URB_MSG_TIMEOUT);
|
||||||
*i2c_data = buf[0];
|
*i2c_data = buf[0];
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Reading bridge register 0x%x containing 0x%x",
|
PDEBUG(D_CONF, "Reading bridge register 0x%x containing 0x%x",
|
||||||
address, *i2c_data);
|
address, *i2c_data);
|
||||||
|
|
||||||
/* usb_control_msg(...) returns the number of bytes sent upon success,
|
/* usb_control_msg(...) returns the number of bytes sent upon success,
|
||||||
|
@ -63,7 +62,7 @@ int m5602_write_bridge(struct sd *sd, u8 address, u8 i2c_data)
|
||||||
struct usb_device *udev = sd->gspca_dev.dev;
|
struct usb_device *udev = sd->gspca_dev.dev;
|
||||||
__u8 *buf = sd->gspca_dev.usb_buf;
|
__u8 *buf = sd->gspca_dev.usb_buf;
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Writing bridge register 0x%x with 0x%x",
|
PDEBUG(D_CONF, "Writing bridge register 0x%x with 0x%x",
|
||||||
address, i2c_data);
|
address, i2c_data);
|
||||||
|
|
||||||
memcpy(buf, bridge_urb_skeleton,
|
memcpy(buf, bridge_urb_skeleton,
|
||||||
|
@ -91,7 +90,8 @@ static void m5602_dump_bridge(struct sd *sd)
|
||||||
m5602_read_bridge(sd, i, &val);
|
m5602_read_bridge(sd, i, &val);
|
||||||
info("ALi m5602 address 0x%x contains 0x%x", i, val);
|
info("ALi m5602 address 0x%x contains 0x%x", i, val);
|
||||||
}
|
}
|
||||||
info("Warning: The camera probably won't work until it's power cycled");
|
info("Warning: The ALi m5602 webcam probably won't work "
|
||||||
|
"until it's power cycled");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int m5602_probe_sensor(struct sd *sd)
|
static int m5602_probe_sensor(struct sd *sd)
|
||||||
|
@ -135,7 +135,7 @@ static int m5602_init(struct gspca_dev *gspca_dev)
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Initializing ALi m5602 webcam");
|
PDEBUG(D_CONF, "Initializing ALi m5602 webcam");
|
||||||
/* Run the init sequence */
|
/* Run the init sequence */
|
||||||
err = sd->sensor->init(sd);
|
err = sd->sensor->init(sd);
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ static int m5602_start_transfer(struct gspca_dev *gspca_dev)
|
||||||
0x04, 0x40, 0x19, 0x0000, buf,
|
0x04, 0x40, 0x19, 0x0000, buf,
|
||||||
4, M5602_URB_MSG_TIMEOUT);
|
4, M5602_URB_MSG_TIMEOUT);
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2, "Transfer started");
|
PDEBUG(D_STREAM, "Transfer started");
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,14 +167,14 @@ static void m5602_urb_complete(struct gspca_dev *gspca_dev,
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
if (len < 6) {
|
if (len < 6) {
|
||||||
PDEBUG(DBG_DATA, "Packet is less than 6 bytes");
|
PDEBUG(D_PACK, "Packet is less than 6 bytes");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Frame delimiter: ff xx xx xx ff ff */
|
/* Frame delimiter: ff xx xx xx ff ff */
|
||||||
if (data[0] == 0xff && data[4] == 0xff && data[5] == 0xff &&
|
if (data[0] == 0xff && data[4] == 0xff && data[5] == 0xff &&
|
||||||
data[2] != sd->frame_id) {
|
data[2] != sd->frame_id) {
|
||||||
PDEBUG(DBG_DATA, "Frame delimiter detected");
|
PDEBUG(D_FRAM, "Frame delimiter detected");
|
||||||
sd->frame_id = data[2];
|
sd->frame_id = data[2];
|
||||||
|
|
||||||
/* Remove the extra fluff appended on each header */
|
/* Remove the extra fluff appended on each header */
|
||||||
|
@ -189,7 +189,7 @@ static void m5602_urb_complete(struct gspca_dev *gspca_dev,
|
||||||
/* Create a new frame */
|
/* Create a new frame */
|
||||||
gspca_frame_add(gspca_dev, FIRST_PACKET, frame, data, len);
|
gspca_frame_add(gspca_dev, FIRST_PACKET, frame, data, len);
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2, "Starting new frame %d",
|
PDEBUG(D_FRAM, "Starting new frame %d",
|
||||||
sd->frame_count);
|
sd->frame_count);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -200,7 +200,7 @@ static void m5602_urb_complete(struct gspca_dev *gspca_dev,
|
||||||
len -= 4;
|
len -= 4;
|
||||||
|
|
||||||
if (cur_frame_len + len <= frame->v4l2_buf.length) {
|
if (cur_frame_len + len <= frame->v4l2_buf.length) {
|
||||||
PDEBUG(DBG_DATA, "Continuing frame %d copying %d bytes",
|
PDEBUG(D_FRAM, "Continuing frame %d copying %d bytes",
|
||||||
sd->frame_count, len);
|
sd->frame_count, len);
|
||||||
|
|
||||||
gspca_frame_add(gspca_dev, INTER_PACKET, frame,
|
gspca_frame_add(gspca_dev, INTER_PACKET, frame,
|
||||||
|
@ -236,8 +236,6 @@ static int m5602_configure(struct gspca_dev *gspca_dev,
|
||||||
struct cam *cam;
|
struct cam *cam;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_GSPCA, "m5602_configure start");
|
|
||||||
|
|
||||||
cam = &gspca_dev->cam;
|
cam = &gspca_dev->cam;
|
||||||
cam->epaddr = M5602_ISOC_ENDPOINT_ADDR;
|
cam->epaddr = M5602_ISOC_ENDPOINT_ADDR;
|
||||||
sd->desc = &sd_desc;
|
sd->desc = &sd_desc;
|
||||||
|
@ -250,11 +248,10 @@ static int m5602_configure(struct gspca_dev *gspca_dev,
|
||||||
if (err)
|
if (err)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
PDEBUG(DBG_GSPCA, "m5602_configure end");
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
PDEBUG(DBG_GSPCA, "m5602_configure failed");
|
PDEBUG(D_ERR, "ALi m5602 webcam failed");
|
||||||
cam->cam_mode = NULL;
|
cam->cam_mode = NULL;
|
||||||
cam->nmodes = 0;
|
cam->nmodes = 0;
|
||||||
|
|
||||||
|
@ -284,13 +281,13 @@ static int __init mod_m5602_init(void)
|
||||||
{
|
{
|
||||||
if (usb_register(&sd_driver) < 0)
|
if (usb_register(&sd_driver) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
PDEBUG(D_PROBE, "m5602 module registered");
|
PDEBUG(D_PROBE, "registered");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
static void __exit mod_m5602_exit(void)
|
static void __exit mod_m5602_exit(void)
|
||||||
{
|
{
|
||||||
usb_deregister(&sd_driver);
|
usb_deregister(&sd_driver);
|
||||||
PDEBUG(D_PROBE, "m5602 module deregistered");
|
PDEBUG(D_PROBE, "deregistered");
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(mod_m5602_init);
|
module_init(mod_m5602_init);
|
||||||
|
@ -299,9 +296,6 @@ module_exit(mod_m5602_exit);
|
||||||
MODULE_AUTHOR(DRIVER_AUTHOR);
|
MODULE_AUTHOR(DRIVER_AUTHOR);
|
||||||
MODULE_DESCRIPTION(DRIVER_DESC);
|
MODULE_DESCRIPTION(DRIVER_DESC);
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
module_param_named(debug, m5602_debug, int, S_IRUGO | S_IWUSR);
|
|
||||||
MODULE_PARM_DESC(debug, "toggles debug on/off");
|
|
||||||
|
|
||||||
module_param(force_sensor, int, S_IRUGO | S_IWUSR);
|
module_param(force_sensor, int, S_IRUGO | S_IWUSR);
|
||||||
MODULE_PARM_DESC(force_sensor,
|
MODULE_PARM_DESC(force_sensor,
|
||||||
"force detection of sensor, "
|
"force detection of sensor, "
|
||||||
|
|
|
@ -107,7 +107,7 @@ int mt9m111_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = mt9m111_read_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
|
err = mt9m111_read_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
|
||||||
data, 2);
|
data, 2);
|
||||||
*val = data[0] & MT9M111_RMB_MIRROR_ROWS;
|
*val = data[0] & MT9M111_RMB_MIRROR_ROWS;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read vertical flip %d", *val);
|
PDEBUG(D_V4L2, "Read vertical flip %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -118,7 +118,7 @@ int mt9m111_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 data[2] = {0x00, 0x00};
|
u8 data[2] = {0x00, 0x00};
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set vertical flip to %d", val);
|
PDEBUG(D_V4L2, "Set vertical flip to %d", val);
|
||||||
|
|
||||||
/* Set the correct page map */
|
/* Set the correct page map */
|
||||||
err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
|
err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
|
||||||
|
@ -145,7 +145,7 @@ int mt9m111_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = mt9m111_read_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
|
err = mt9m111_read_sensor(sd, MT9M111_SC_R_MODE_CONTEXT_B,
|
||||||
data, 2);
|
data, 2);
|
||||||
*val = data[0] & MT9M111_RMB_MIRROR_COLS;
|
*val = data[0] & MT9M111_RMB_MIRROR_COLS;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read horizontal flip %d", *val);
|
PDEBUG(D_V4L2, "Read horizontal flip %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ int mt9m111_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 data[2] = {0x00, 0x00};
|
u8 data[2] = {0x00, 0x00};
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set horizontal flip to %d", val);
|
PDEBUG(D_V4L2, "Set horizontal flip to %d", val);
|
||||||
|
|
||||||
/* Set the correct page map */
|
/* Set the correct page map */
|
||||||
err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
|
err = mt9m111_write_sensor(sd, MT9M111_PAGE_MAP, data, 2);
|
||||||
|
@ -188,7 +188,7 @@ int mt9m111_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
((tmp & (1 << 8)) * 2) |
|
((tmp & (1 << 8)) * 2) |
|
||||||
(tmp & 0x7f);
|
(tmp & 0x7f);
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Read gain %d", *val);
|
PDEBUG(D_V4L2, "Read gain %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -222,7 +222,7 @@ int mt9m111_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
|
|
||||||
data[1] = (tmp & 0xff00) >> 8;
|
data[1] = (tmp & 0xff00) >> 8;
|
||||||
data[0] = (tmp & 0xff);
|
data[0] = (tmp & 0xff);
|
||||||
PDEBUG(DBG_V4L2_CID, "tmp=%d, data[1]=%d, data[0]=%d", tmp,
|
PDEBUG(D_V4L2, "tmp=%d, data[1]=%d, data[0]=%d", tmp,
|
||||||
data[1], data[0]);
|
data[1], data[0]);
|
||||||
|
|
||||||
err = mt9m111_write_sensor(sd, MT9M111_SC_GLOBAL_GAIN,
|
err = mt9m111_write_sensor(sd, MT9M111_SC_GLOBAL_GAIN,
|
||||||
|
@ -257,7 +257,7 @@ int mt9m111_read_sensor(struct sd *sd, const u8 address,
|
||||||
for (i = 0; i < len && !err; i++) {
|
for (i = 0; i < len && !err; i++) {
|
||||||
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Reading sensor register "
|
PDEBUG(D_CONF, "Reading sensor register "
|
||||||
"0x%x contains 0x%x ", address, *i2c_data);
|
"0x%x contains 0x%x ", address, *i2c_data);
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
@ -290,7 +290,7 @@ int mt9m111_write_sensor(struct sd *sd, const u8 address,
|
||||||
memcpy(p, sensor_urb_skeleton + 16, 4);
|
memcpy(p, sensor_urb_skeleton + 16, 4);
|
||||||
p[3] = i2c_data[i];
|
p[3] = i2c_data[i];
|
||||||
p += 4;
|
p += 4;
|
||||||
PDEBUG(DBG_TRACE, "Writing sensor register 0x%x with 0x%x",
|
PDEBUG(D_CONF, "Writing sensor register 0x%x with 0x%x",
|
||||||
address, i2c_data[i]);
|
address, i2c_data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ int ov9650_read_sensor(struct sd *sd, const u8 address,
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Reading sensor register "
|
PDEBUG(D_CONF, "Reading sensor register "
|
||||||
"0x%x containing 0x%x ", address, *i2c_data);
|
"0x%x containing 0x%x ", address, *i2c_data);
|
||||||
}
|
}
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
|
@ -72,7 +72,7 @@ int ov9650_write_sensor(struct sd *sd, const u8 address,
|
||||||
memcpy(p, sensor_urb_skeleton + 16, 4);
|
memcpy(p, sensor_urb_skeleton + 16, 4);
|
||||||
p[3] = i2c_data[i];
|
p[3] = i2c_data[i];
|
||||||
p += 4;
|
p += 4;
|
||||||
PDEBUG(DBG_TRACE, "Writing sensor register 0x%x with 0x%x",
|
PDEBUG(D_CONF, "Writing sensor register 0x%x with 0x%x",
|
||||||
address, i2c_data[i]);
|
address, i2c_data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ int ov9650_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
goto out;
|
goto out;
|
||||||
*val |= (i2c_data & 0x3f) << 10;
|
*val |= (i2c_data & 0x3f) << 10;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Read exposure %d", *val);
|
PDEBUG(D_V4L2, "Read exposure %d", *val);
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -210,7 +210,7 @@ int ov9650_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set exposure to %d",
|
PDEBUG(D_V4L2, "Set exposure to %d",
|
||||||
val & 0xffff);
|
val & 0xffff);
|
||||||
|
|
||||||
/* The 6 MSBs */
|
/* The 6 MSBs */
|
||||||
|
@ -246,7 +246,7 @@ int ov9650_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = ov9650_read_sensor(sd, OV9650_GAIN, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_GAIN, &i2c_data, 1);
|
||||||
*val |= i2c_data;
|
*val |= i2c_data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read gain %d", *val);
|
PDEBUG(D_V4L2, "Read gain %d", *val);
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,7 +280,7 @@ int ov9650_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = ov9650_read_sensor(sd, OV9650_RED, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_RED, &i2c_data, 1);
|
||||||
*val = i2c_data;
|
*val = i2c_data;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Read red gain %d", *val);
|
PDEBUG(D_V4L2, "Read red gain %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -291,7 +291,7 @@ int ov9650_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set red gain to %d",
|
PDEBUG(D_V4L2, "Set red gain to %d",
|
||||||
val & 0xff);
|
val & 0xff);
|
||||||
|
|
||||||
i2c_data = val & 0xff;
|
i2c_data = val & 0xff;
|
||||||
|
@ -309,7 +309,7 @@ int ov9650_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = ov9650_read_sensor(sd, OV9650_BLUE, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_BLUE, &i2c_data, 1);
|
||||||
*val = i2c_data;
|
*val = i2c_data;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Read blue gain %d", *val);
|
PDEBUG(D_V4L2, "Read blue gain %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -320,7 +320,7 @@ int ov9650_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set blue gain to %d",
|
PDEBUG(D_V4L2, "Set blue gain to %d",
|
||||||
val & 0xff);
|
val & 0xff);
|
||||||
|
|
||||||
i2c_data = val & 0xff;
|
i2c_data = val & 0xff;
|
||||||
|
@ -340,7 +340,7 @@ int ov9650_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
*val = ((i2c_data & OV9650_HFLIP) >> 5) ? 0 : 1;
|
*val = ((i2c_data & OV9650_HFLIP) >> 5) ? 0 : 1;
|
||||||
else
|
else
|
||||||
*val = (i2c_data & OV9650_HFLIP) >> 5;
|
*val = (i2c_data & OV9650_HFLIP) >> 5;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read horizontal flip %d", *val);
|
PDEBUG(D_V4L2, "Read horizontal flip %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -351,7 +351,7 @@ int ov9650_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set horizontal flip to %d", val);
|
PDEBUG(D_V4L2, "Set horizontal flip to %d", val);
|
||||||
err = ov9650_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -379,7 +379,7 @@ int ov9650_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
*val = ((i2c_data & 0x10) >> 4) ? 0 : 1;
|
*val = ((i2c_data & 0x10) >> 4) ? 0 : 1;
|
||||||
else
|
else
|
||||||
*val = (i2c_data & 0x10) >> 4;
|
*val = (i2c_data & 0x10) >> 4;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read vertical flip %d", *val);
|
PDEBUG(D_V4L2, "Read vertical flip %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -390,7 +390,7 @@ int ov9650_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set vertical flip to %d", val);
|
PDEBUG(D_V4L2, "Set vertical flip to %d", val);
|
||||||
err = ov9650_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_MVFP, &i2c_data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -420,7 +420,7 @@ int ov9650_get_brightness(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = ov9650_read_sensor(sd, OV9650_GAIN, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_GAIN, &i2c_data, 1);
|
||||||
*val |= i2c_data;
|
*val |= i2c_data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read gain %d", *val);
|
PDEBUG(D_V4L2, "Read gain %d", *val);
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -431,7 +431,7 @@ int ov9650_set_brightness(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set gain to %d", val & 0x3ff);
|
PDEBUG(D_V4L2, "Set gain to %d", val & 0x3ff);
|
||||||
|
|
||||||
/* Read the OV9650_VREF register first to avoid
|
/* Read the OV9650_VREF register first to avoid
|
||||||
corrupting the VREF high and low bits */
|
corrupting the VREF high and low bits */
|
||||||
|
@ -461,7 +461,7 @@ int ov9650_get_auto_white_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
||||||
*val = (i2c_data & OV9650_AWB_EN) >> 1;
|
*val = (i2c_data & OV9650_AWB_EN) >> 1;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read auto white balance %d", *val);
|
PDEBUG(D_V4L2, "Read auto white balance %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -472,7 +472,7 @@ int ov9650_set_auto_white_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set auto white balance to %d", val);
|
PDEBUG(D_V4L2, "Set auto white balance to %d", val);
|
||||||
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -491,7 +491,7 @@ int ov9650_get_auto_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
||||||
*val = (i2c_data & OV9650_AGC_EN) >> 2;
|
*val = (i2c_data & OV9650_AGC_EN) >> 2;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read auto gain control %d", *val);
|
PDEBUG(D_V4L2, "Read auto gain control %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -502,7 +502,7 @@ int ov9650_set_auto_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
struct sd *sd = (struct sd *) gspca_dev;
|
struct sd *sd = (struct sd *) gspca_dev;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set auto gain control to %d", val);
|
PDEBUG(D_V4L2, "Set auto gain control to %d", val);
|
||||||
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
err = ov9650_read_sensor(sd, OV9650_COM8, &i2c_data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Driver for the po1030 sensor
|
* Driver for the po1030 sensor
|
||||||
*
|
*
|
||||||
|
@ -82,7 +83,7 @@ int po1030_read_sensor(struct sd *sd, const u8 address,
|
||||||
for (i = 0; i < len; i++) {
|
for (i = 0; i < len; i++) {
|
||||||
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Reading sensor register "
|
PDEBUG(D_CONF, "Reading sensor register "
|
||||||
"0x%x containing 0x%x ", address, *i2c_data);
|
"0x%x containing 0x%x ", address, *i2c_data);
|
||||||
}
|
}
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
|
@ -112,7 +113,7 @@ int po1030_write_sensor(struct sd *sd, const u8 address,
|
||||||
memcpy(p, sensor_urb_skeleton + 16, 4);
|
memcpy(p, sensor_urb_skeleton + 16, 4);
|
||||||
p[3] = i2c_data[i];
|
p[3] = i2c_data[i];
|
||||||
p += 4;
|
p += 4;
|
||||||
PDEBUG(DBG_TRACE, "Writing sensor register 0x%x with 0x%x",
|
PDEBUG(D_CONF, "Writing sensor register 0x%x with 0x%x",
|
||||||
address, i2c_data[i]);
|
address, i2c_data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -185,7 +186,7 @@ int po1030_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
*val |= i2c_data;
|
*val |= i2c_data;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Exposure read as %d", *val);
|
PDEBUG(D_V4L2, "Exposure read as %d", *val);
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -196,10 +197,10 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2, "Set exposure to %d", val & 0xffff);
|
PDEBUG(D_V4L2, "Set exposure to %d", val & 0xffff);
|
||||||
|
|
||||||
i2c_data = ((val & 0xff00) >> 8);
|
i2c_data = ((val & 0xff00) >> 8);
|
||||||
PDEBUG(DBG_V4L2, "Set exposure to high byte to 0x%x",
|
PDEBUG(D_V4L2, "Set exposure to high byte to 0x%x",
|
||||||
i2c_data);
|
i2c_data);
|
||||||
|
|
||||||
err = po1030_write_sensor(sd, PO1030_REG_INTEGLINES_H,
|
err = po1030_write_sensor(sd, PO1030_REG_INTEGLINES_H,
|
||||||
|
@ -208,7 +209,7 @@ int po1030_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
i2c_data = (val & 0xff);
|
i2c_data = (val & 0xff);
|
||||||
PDEBUG(DBG_V4L2, "Set exposure to low byte to 0x%x",
|
PDEBUG(D_V4L2, "Set exposure to low byte to 0x%x",
|
||||||
i2c_data);
|
i2c_data);
|
||||||
err = po1030_write_sensor(sd, PO1030_REG_INTEGLINES_M,
|
err = po1030_write_sensor(sd, PO1030_REG_INTEGLINES_M,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
|
@ -226,7 +227,7 @@ int po1030_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = po1030_read_sensor(sd, PO1030_REG_GLOBALGAIN,
|
err = po1030_read_sensor(sd, PO1030_REG_GLOBALGAIN,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
*val = i2c_data;
|
*val = i2c_data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read global gain %d", *val);
|
PDEBUG(D_V4L2, "Read global gain %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -238,7 +239,7 @@ int po1030_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
i2c_data = val & 0xff;
|
i2c_data = val & 0xff;
|
||||||
PDEBUG(DBG_V4L2, "Set global gain to %d", i2c_data);
|
PDEBUG(D_V4L2, "Set global gain to %d", i2c_data);
|
||||||
err = po1030_write_sensor(sd, PO1030_REG_GLOBALGAIN,
|
err = po1030_write_sensor(sd, PO1030_REG_GLOBALGAIN,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
|
@ -253,7 +254,7 @@ int po1030_get_red_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = po1030_read_sensor(sd, PO1030_REG_RED_GAIN,
|
err = po1030_read_sensor(sd, PO1030_REG_RED_GAIN,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
*val = i2c_data;
|
*val = i2c_data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read red gain %d", *val);
|
PDEBUG(D_V4L2, "Read red gain %d", *val);
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,7 +265,7 @@ int po1030_set_red_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
i2c_data = val & 0xff;
|
i2c_data = val & 0xff;
|
||||||
PDEBUG(DBG_V4L2, "Set red gain to %d", i2c_data);
|
PDEBUG(D_V4L2, "Set red gain to %d", i2c_data);
|
||||||
err = po1030_write_sensor(sd, PO1030_REG_RED_GAIN,
|
err = po1030_write_sensor(sd, PO1030_REG_RED_GAIN,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
|
@ -279,7 +280,7 @@ int po1030_get_blue_balance(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
err = po1030_read_sensor(sd, PO1030_REG_BLUE_GAIN,
|
err = po1030_read_sensor(sd, PO1030_REG_BLUE_GAIN,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
*val = i2c_data;
|
*val = i2c_data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read blue gain %d", *val);
|
PDEBUG(D_V4L2, "Read blue gain %d", *val);
|
||||||
|
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -290,7 +291,7 @@ int po1030_set_blue_balance(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 i2c_data;
|
u8 i2c_data;
|
||||||
int err;
|
int err;
|
||||||
i2c_data = val & 0xff;
|
i2c_data = val & 0xff;
|
||||||
PDEBUG(DBG_V4L2, "Set blue gain to %d", i2c_data);
|
PDEBUG(D_V4L2, "Set blue gain to %d", i2c_data);
|
||||||
err = po1030_write_sensor(sd, PO1030_REG_BLUE_GAIN,
|
err = po1030_write_sensor(sd, PO1030_REG_BLUE_GAIN,
|
||||||
&i2c_data, 1);
|
&i2c_data, 1);
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ int s5k4aa_read_sensor(struct sd *sd, const u8 address,
|
||||||
for (i = 0; (i < len) & !err; i++) {
|
for (i = 0; (i < len) & !err; i++) {
|
||||||
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Reading sensor register "
|
PDEBUG(D_CONF, "Reading sensor register "
|
||||||
"0x%x containing 0x%x ", address, *i2c_data);
|
"0x%x containing 0x%x ", address, *i2c_data);
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
@ -150,7 +150,7 @@ int s5k4aa_write_sensor(struct sd *sd, const u8 address,
|
||||||
memcpy(p, sensor_urb_skeleton + 16, 4);
|
memcpy(p, sensor_urb_skeleton + 16, 4);
|
||||||
p[3] = i2c_data[i];
|
p[3] = i2c_data[i];
|
||||||
p += 4;
|
p += 4;
|
||||||
PDEBUG(DBG_TRACE, "Writing sensor register 0x%x with 0x%x",
|
PDEBUG(D_CONF, "Writing sensor register 0x%x with 0x%x",
|
||||||
address, i2c_data[i]);
|
address, i2c_data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ int s5k4aa_get_exposure(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
*val = data << 8;
|
*val = data << 8;
|
||||||
err = s5k4aa_read_sensor(sd, S5K4AA_EXPOSURE_LO, &data, 1);
|
err = s5k4aa_read_sensor(sd, S5K4AA_EXPOSURE_LO, &data, 1);
|
||||||
*val |= data;
|
*val |= data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read exposure %d", *val);
|
PDEBUG(D_V4L2, "Read exposure %d", *val);
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -259,7 +259,7 @@ int s5k4aa_set_exposure(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 data = S5K4AA_PAGE_MAP_2;
|
u8 data = S5K4AA_PAGE_MAP_2;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set exposure to %d", val);
|
PDEBUG(D_V4L2, "Set exposure to %d", val);
|
||||||
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -285,7 +285,7 @@ int s5k4aa_get_vflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = s5k4aa_read_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
err = s5k4aa_read_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
||||||
*val = (data & S5K4AA_RM_V_FLIP) >> 7;
|
*val = (data & S5K4AA_RM_V_FLIP) >> 7;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read vertical flip %d", *val);
|
PDEBUG(D_V4L2, "Read vertical flip %d", *val);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
|
@ -297,7 +297,7 @@ int s5k4aa_set_vflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 data = S5K4AA_PAGE_MAP_2;
|
u8 data = S5K4AA_PAGE_MAP_2;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set vertical flip to %d", val);
|
PDEBUG(D_V4L2, "Set vertical flip to %d", val);
|
||||||
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -341,7 +341,7 @@ int s5k4aa_get_hflip(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = s5k4aa_read_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
err = s5k4aa_read_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
||||||
*val = (data & S5K4AA_RM_H_FLIP) >> 6;
|
*val = (data & S5K4AA_RM_H_FLIP) >> 6;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read horizontal flip %d", *val);
|
PDEBUG(D_V4L2, "Read horizontal flip %d", *val);
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
}
|
}
|
||||||
|
@ -352,7 +352,7 @@ int s5k4aa_set_hflip(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 data = S5K4AA_PAGE_MAP_2;
|
u8 data = S5K4AA_PAGE_MAP_2;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set horizontal flip to %d",
|
PDEBUG(D_V4L2, "Set horizontal flip to %d",
|
||||||
val);
|
val);
|
||||||
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
|
@ -397,7 +397,7 @@ int s5k4aa_get_gain(struct gspca_dev *gspca_dev, __s32 *val)
|
||||||
|
|
||||||
err = s5k4aa_read_sensor(sd, S5K4AA_GAIN_2, &data, 1);
|
err = s5k4aa_read_sensor(sd, S5K4AA_GAIN_2, &data, 1);
|
||||||
*val = data;
|
*val = data;
|
||||||
PDEBUG(DBG_V4L2_CID, "Read gain %d", *val);
|
PDEBUG(D_V4L2, "Read gain %d", *val);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return (err < 0) ? err : 0;
|
return (err < 0) ? err : 0;
|
||||||
|
@ -409,7 +409,7 @@ int s5k4aa_set_gain(struct gspca_dev *gspca_dev, __s32 val)
|
||||||
u8 data = S5K4AA_PAGE_MAP_2;
|
u8 data = S5K4AA_PAGE_MAP_2;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
PDEBUG(DBG_V4L2_CID, "Set gain to %d", val);
|
PDEBUG(D_V4L2, "Set gain to %d", val);
|
||||||
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
err = s5k4aa_write_sensor(sd, S5K4AA_PAGE_MAP, &data, 1);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -101,7 +101,7 @@ int s5k83a_read_sensor(struct sd *sd, const u8 address,
|
||||||
for (i = 0; i < len && !len; i++) {
|
for (i = 0; i < len && !len; i++) {
|
||||||
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
err = m5602_read_bridge(sd, M5602_XB_I2C_DATA, &(i2c_data[i]));
|
||||||
|
|
||||||
PDEBUG(DBG_TRACE, "Reading sensor register "
|
PDEBUG(D_CONF, "Reading sensor register "
|
||||||
"0x%x containing 0x%x ", address, *i2c_data);
|
"0x%x containing 0x%x ", address, *i2c_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ int s5k83a_write_sensor(struct sd *sd, const u8 address,
|
||||||
memcpy(p, sensor_urb_skeleton + 16, 4);
|
memcpy(p, sensor_urb_skeleton + 16, 4);
|
||||||
p[3] = i2c_data[i];
|
p[3] = i2c_data[i];
|
||||||
p += 4;
|
p += 4;
|
||||||
PDEBUG(DBG_TRACE, "Writing sensor register 0x%x with 0x%x",
|
PDEBUG(D_CONF, "Writing sensor register 0x%x with 0x%x",
|
||||||
address, i2c_data[i]);
|
address, i2c_data[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue