static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val);
static struct ctrl sd_ctrls[] = {
-#define SD_BRIGHTNESS 0
{
{
.id = V4L2_CID_BRIGHTNESS,
.type = V4L2_CTRL_TYPE_INTEGER,
.name = "Brightness",
.minimum = 0,
- .maximum = 0xff,
+ .maximum = 255,
.step = 1,
- .default_value = 0x80,
+#define BRIGHTNESS_DEF 128
+ .default_value = BRIGHTNESS_DEF,
},
.set = sd_setbrightness,
.get = sd_getbrightness,
/* Video drop enable, ISO streaming disable */
/* 53252 2165 */
/* UNKNOWN DIRECTION (URB_FUNCTION_SELECT_INTERFACE: (ALT=0) ) */
- {0, 0}
+ {}
};
/*542 */ {0x0040, 0x8652},
/*543 */ {0x004c, 0x8653},
/*544 */ {0x0040, 0x8654},
-
- {0, 0}
+ {}
};
static const __u16 spca508_sightcam2_init_data[][3] = {
vendor = id->idVendor;
product = id->idProduct;
switch (vendor) {
+ case 0x0130: /* Clone webcam */
+/* switch (product) { */
+/* case 0x0130: */
+ sd->subtype = HamaUSBSightcam; /* same as Hama 0010 */
+/* break; */
+/* } */
+ break;
case 0x041e: /* Creative cameras */
/* switch (product) { */
/* case 0x4018: */
/* break; */
/* } */
break;
- case 0x0130: /* Clone webcam */
case 0x0af9: /* Hama cameras */
switch (product) {
- case 0x0130:
case 0x0010:
sd->subtype = HamaUSBSightcam;
break;
break;
}
- /* Read from global register the USB product and vendor IDs, just to */
- /* prove that we can communicate with the device. This works, which */
- /* confirms at we are communicating properly and that the device */
- /* is a 508. */
+ /* Read from global register the USB product and vendor IDs, just to
+ * prove that we can communicate with the device. This works, which
+ * confirms at we are communicating properly and that the device
+ * is a 508. */
data1 = reg_read(dev, 0x8104);
data2 = reg_read(dev, 0x8105);
- PDEBUG(D_PROBE,
- "Read from GLOBAL: USB Vendor ID 0x%02x%02x", data2, data1);
+ PDEBUG(D_PROBE, "Webcam Vendor ID: 0x%02x%02x", data2, data1);
data1 = reg_read(dev, 0x8106);
data2 = reg_read(dev, 0x8107);
- PDEBUG(D_PROBE,
- "Read from GLOBAL: USB Product ID 0x%02x%02x", data2, data1);
+ PDEBUG(D_PROBE, "Webcam Product ID: 0x%02x%02x", data2, data1);
data1 = reg_read(dev, 0x8621);
- PDEBUG(D_PROBE,
- "Read from GLOBAL: Window 1 average luminance %d", data1);
+ PDEBUG(D_PROBE, "Window 1 average luminance: %d", data1);
cam = &gspca_dev->cam;
cam->dev_name = (char *) id->driver_info;
cam->epaddr = 0x01;
cam->cam_mode = sif_mode;
- cam->nmodes = sizeof sif_mode / sizeof sif_mode[0];
- sd->brightness = sd_ctrls[SD_BRIGHTNESS].qctrl.default_value;
+ cam->nmodes = ARRAY_SIZE(sif_mode);
+ sd->brightness = BRIGHTNESS_DEF;
switch (sd->subtype) {
case ViewQuestVQ110:
struct sd *sd = (struct sd *) gspca_dev;
__u8 brightness = sd->brightness;
-/* MX seem contrast */
+ /* MX seem contrast */
reg_write(gspca_dev->dev, 0x8651, brightness);
reg_write(gspca_dev->dev, 0x8652, brightness);
reg_write(gspca_dev->dev, 0x8653, brightness);
/* -- module initialisation -- */
#define DVNM(name) .driver_info = (kernel_ulong_t) name
static const __devinitdata struct usb_device_id device_table[] = {
+ {USB_DEVICE(0x0130, 0x0130), DVNM("Clone Digital Webcam 11043")},
{USB_DEVICE(0x041e, 0x4018), DVNM("Creative Webcam Vista (PD1100)")},
{USB_DEVICE(0x0461, 0x0815), DVNM("Micro Innovation IC200")},
{USB_DEVICE(0x0733, 0x0110), DVNM("ViewQuest VQ110")},
{USB_DEVICE(0x0af9, 0x0010), DVNM("Hama USB Sightcam 100")},
{USB_DEVICE(0x0af9, 0x0011), DVNM("Hama USB Sightcam 100")},
{USB_DEVICE(0x8086, 0x0110), DVNM("Intel Easy PC Camera")},
- {USB_DEVICE(0x0130, 0x0130),
- DVNM("Clone Digital Webcam 11043 (spca508a)")},
{}
};
MODULE_DEVICE_TABLE(usb, device_table);