|
@@ -686,6 +686,15 @@ static void setexposure(struct gspca_dev *gspca_dev)
|
|
|
struct sd *sd = (struct sd *) gspca_dev;
|
|
|
u8 val;
|
|
|
|
|
|
+ if (sd->aec)
|
|
|
+ return;
|
|
|
+
|
|
|
+ /* 'val' is one byte and represents half of the exposure value we are
|
|
|
+ * going to set into registers, a two bytes value:
|
|
|
+ *
|
|
|
+ * MSB: ((u16) val << 1) >> 8 == val >> 7
|
|
|
+ * LSB: ((u16) val << 1) & 0xff == val << 1
|
|
|
+ */
|
|
|
val = sd->exposure;
|
|
|
sccb_reg_write(gspca_dev, 0x08, val >> 7);
|
|
|
sccb_reg_write(gspca_dev, 0x10, val << 1);
|