Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3870ed3a authored by Hans de Goede's avatar Hans de Goede Committed by Mauro Carvalho Chehab
Browse files

[media] gspca_sonixb: Fix exposure control min/max value for coarse expo sensors



This got broken by some gscpa core fixes, this patch restores the proper
min/max values for these controls.

Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent fe3449a4
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -1079,20 +1079,23 @@ static int sd_config(struct gspca_dev *gspca_dev,
	}
	cam->npkt = 36;			/* 36 packets per ISOC message */

	if (sensor_data[sd->sensor].flags & F_COARSE_EXPO) {
		sd->ctrls[EXPOSURE].min = COARSE_EXPOSURE_MIN;
		sd->ctrls[EXPOSURE].max = COARSE_EXPOSURE_MAX;
		sd->ctrls[EXPOSURE].def = COARSE_EXPOSURE_DEF;
	}

	return 0;
}

/* this function is called at probe and resume time */
static int sd_init(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;
	const __u8 stop = 0x09; /* Disable stream turn of LED */

	if (sensor_data[sd->sensor].flags & F_COARSE_EXPO) {
		sd->ctrls[EXPOSURE].min = COARSE_EXPOSURE_MIN;
		sd->ctrls[EXPOSURE].max = COARSE_EXPOSURE_MAX;
		sd->ctrls[EXPOSURE].def = COARSE_EXPOSURE_DEF;
		if (sd->ctrls[EXPOSURE].val > COARSE_EXPOSURE_MAX)
			sd->ctrls[EXPOSURE].val = COARSE_EXPOSURE_DEF;
	}

	reg_w(gspca_dev, 0x01, &stop, 1);

	return 0;