Commit 18cf8c91 authored by Antonio Ospite's avatar Antonio Ospite Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB: gspca - ov534: Fix and document setting manual exposure



Document that even if the state is a u8 value, both MSB and LSB are set
as sd->exposure represents half of the value we are going to set into
registers.

Skip setting exposure when AEC is enabled.

Signed-off-by: default avatarAntonio Ospite <ospite@studenti.unina.it>
Signed-off-by: default avatarJean-François Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent f2938822
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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);