Эх сурвалжийг харах

V4L/DVB (9544): gspca: Clear the bulk endpoint at starting time when bulk transfer.

- usb_clear_halt() added in gspca and removed in finepix.

Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean-Francois Moine 16 жил өмнө
parent
commit
8fe2f1d522

+ 0 - 3
drivers/media/video/gspca/finepix.c

@@ -314,9 +314,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
 	int ret;
 	int size_ret;
 
-	/* Reset bulk in endpoint */
-	usb_clear_halt(gspca_dev->dev, gspca_dev->cam.epaddr);
-
 	/* Init the device */
 	memset(gspca_dev->usb_buf, 0, 12);
 	gspca_dev->usb_buf[0] = 0xc6;

+ 6 - 0
drivers/media/video/gspca/gspca.c

@@ -597,6 +597,12 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev)
 		if (ret < 0)
 			goto out;
 
+		/* clear the bulk endpoint */
+		if (gspca_dev->alt == 0)	/* if bulk transfer */
+			usb_clear_halt(gspca_dev->dev,
+					usb_rcvintpipe(gspca_dev->dev,
+						 gspca_dev->cam.epaddr));
+
 		/* start the cam */
 		ret = gspca_dev->sd_desc->start(gspca_dev);
 		if (ret < 0) {