summary refs log tree commit diff
path: root/drivers/media
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2011-01-13 07:56:00 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-01-19 11:45:43 -0200
commita63d601803c2e3ba06ed51b9ed997fc6bf80e5bf (patch)
tree96ad14a60b5e455a75dc05d51b96b3f7624c8fec /drivers/media
parent3afef85bfefa65a31f4dbf8e7921c7938adb24f4 (diff)
downloadlinux-a63d601803c2e3ba06ed51b9ed997fc6bf80e5bf.tar.gz
[media] gspca - sonixj: Add LED (illuminator) control to the webcam 0c45:614a
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/gspca/sonixj.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index c634dc113f94..d6f39ce1b7e1 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -2193,14 +2193,22 @@ static void setillum(struct gspca_dev *gspca_dev)
 
 	if (gspca_dev->ctrl_dis & (1 << ILLUM))
 		return;
-	if (starcam)
-		reg_w1(gspca_dev, 0x02,			/* gpio */
-			sd->ctrls[ILLUM].val ?
-					0x55 : 0x54);	/* 370i */
-	else
-		reg_w1(gspca_dev, 0x02,
-			sd->ctrls[ILLUM].val ?
-					0x66 : 0x64);	/* Clip */
+	switch (sd->sensor) {
+	case SENSOR_ADCM1700:
+		reg_w1(gspca_dev, 0x02,				/* gpio */
+			sd->ctrls[ILLUM].val ? 0x64 : 0x60);
+		break;
+	case SENSOR_MT9V111:
+		if (starcam)
+			reg_w1(gspca_dev, 0x02,
+				sd->ctrls[ILLUM].val ?
+						0x55 : 0x54);	/* 370i */
+		else
+			reg_w1(gspca_dev, 0x02,
+				sd->ctrls[ILLUM].val ?
+						0x66 : 0x64);	/* Clip */
+		break;
+	}
 }
 
 static void setfreq(struct gspca_dev *gspca_dev)
@@ -2959,7 +2967,7 @@ static const struct usb_device_id device_table[] = {
 						/* or GC0305 / GC0307 */
 	{USB_DEVICE(0x0c45, 0x6143), BS(SN9C120, SP80708)},	/*sn9c120b*/
 	{USB_DEVICE(0x0c45, 0x6148), BS(SN9C120, OM6802)},	/*sn9c120b*/
-	{USB_DEVICE(0x0c45, 0x614a), BS(SN9C120, ADCM1700)},	/*sn9c120b*/
+	{USB_DEVICE(0x0c45, 0x614a), BSF(SN9C120, ADCM1700, F_ILLUM)},
 /*	{USB_DEVICE(0x0c45, 0x614c), BS(SN9C120, GC0306)}, */	/*sn9c120b*/
 	{}
 };