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

Commit e2817029 authored by Jean-François Moine's avatar Jean-François Moine Committed by Mauro Carvalho Chehab
Browse files

[media] gspca - ov519: Check the disabled controls at start time only

parent 858ea5e9
Loading
Loading
Loading
Loading
+12 −16
Original line number Diff line number Diff line
@@ -3667,8 +3667,6 @@ static void sethvflip(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;

	if (sd->sensor != SEN_OV7670)
		return;
	if (sd->gspca_dev.streaming)
		ov51x_stop(sd);
	i2c_w_mask(sd, OV7670_R1E_MVFP,
@@ -3812,11 +3810,17 @@ static int sd_start(struct gspca_dev *gspca_dev)

	set_ov_sensor_window(sd);

	if (!(sd->gspca_dev.ctrl_dis & (1 << CONTRAST)))
		setcontrast(gspca_dev);
	if (!(sd->gspca_dev.ctrl_dis & (1 << BRIGHTNESS)))
		setbrightness(gspca_dev);
	if (!(sd->gspca_dev.ctrl_dis & (1 << COLORS)))
		setcolors(gspca_dev);
	if (!(sd->gspca_dev.ctrl_dis & ((1 << HFLIP) | (1 << VFLIP))))
		sethvflip(gspca_dev);
	if (!(sd->gspca_dev.ctrl_dis & (1 << AUTOBRIGHT)))
		setautobright(gspca_dev);
	if (!(sd->gspca_dev.ctrl_dis & (1 << FREQ)))
		setfreq_i(sd);

	/* Force clear snapshot state in case the snapshot button was
@@ -4184,19 +4188,11 @@ static void setautobright(struct gspca_dev *gspca_dev)
{
	struct sd *sd = (struct sd *) gspca_dev;

	if (sd->sensor == SEN_OV7640 || sd->sensor == SEN_OV7648 ||
	    sd->sensor == SEN_OV7670 ||
	    sd->sensor == SEN_OV2610 || sd->sensor == SEN_OV3610)
		return;

	i2c_w_mask(sd, 0x2d, sd->ctrls[AUTOBRIGHT].val ? 0x10 : 0x00, 0x10);
}

static void setfreq_i(struct sd *sd)
{
	if (sd->sensor == SEN_OV2610 || sd->sensor == SEN_OV3610)
		return;

	if (sd->sensor == SEN_OV7670) {
		switch (sd->ctrls[FREQ].val) {
		case 0: /* Banding filter disabled */