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

Commit 82b343b2 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] gspca: always call v4l2_ctrl_handler_setup after start



This ensures the controls are setup correctly.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ac3322b0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -930,6 +930,7 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev)
			goto out;
		}
		gspca_dev->streaming = 1;
		v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler);

		/* some bulk transfers are started by the subdriver */
		if (gspca_dev->cam.bulk && gspca_dev->cam.bulk_nurbs == 0)
@@ -2428,7 +2429,6 @@ int gspca_resume(struct usb_interface *intf)
	 */
	streaming = gspca_dev->streaming;
	gspca_dev->streaming = 0;
	v4l2_ctrl_handler_setup(gspca_dev->vdev.ctrl_handler);
	if (streaming)
		ret = gspca_init_transfer(gspca_dev);
	mutex_unlock(&gspca_dev->usb_lock);
+0 −1
Original line number Diff line number Diff line
@@ -1878,7 +1878,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
		break;
	}

	v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
	sd->exp_too_high_cnt = 0;
	sd->exp_too_low_cnt = 0;
	return gspca_dev->usb_err;
+0 −2
Original line number Diff line number Diff line
@@ -4209,8 +4209,6 @@ static int sd_start(struct gspca_dev *gspca_dev)

	set_ov_sensor_window(sd);

	v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);

	/* Force clear snapshot state in case the snapshot button was
	   pressed while we weren't streaming */
	sd->snapshot_needs_reset = 1;
+2 −5
Original line number Diff line number Diff line
@@ -1235,10 +1235,9 @@ static int sd_start(struct gspca_dev *gspca_dev)

	if (sd->sensor == SENSOR_OV971x)
		return gspca_dev->usb_err;
	else if (sd->sensor == SENSOR_OV562x) {
		v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
	if (sd->sensor == SENSOR_OV562x)
		return gspca_dev->usb_err;
	}

	switch (gspca_dev->curr_mode) {
	case QVGA_MODE:			/* 320x240 */
		sccb_w_array(gspca_dev, ov965x_start_1_vga,
@@ -1283,8 +1282,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
		break;
	}

	v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);

	reg_w(gspca_dev, 0xe0, 0x00);
	reg_w(gspca_dev, 0xe0, 0x00);
	set_led(gspca_dev, 1);
+0 −1
Original line number Diff line number Diff line
@@ -373,7 +373,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
	}
	se401_set_feature(gspca_dev, SE401_OPERATINGMODE, mode);

	v4l2_ctrl_handler_setup(&gspca_dev->ctrl_handler);
	se401_set_feature(gspca_dev, HV7131_REG_ARLV, sd->resetlevel);

	sd->packet_read = 0;
Loading