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

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

[media] gspca - main: Fix a regression with the PS3 Eye webcam



When audio is present, some alternate settings were skipped.
This prevented some webcams to work, especially when bulk transfer was used.
This patch permits to use the last or only alternate setting.

Reported-by: default avatarAntonio Ospite <ospite@studenti.unina.it>
Tested-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 3f0a4d29
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -652,7 +652,7 @@ static struct usb_host_endpoint *get_ep(struct gspca_dev *gspca_dev)
				   : USB_ENDPOINT_XFER_ISOC;
				   : USB_ENDPOINT_XFER_ISOC;
	i = gspca_dev->alt;			/* previous alt setting */
	i = gspca_dev->alt;			/* previous alt setting */
	if (gspca_dev->cam.reverse_alts) {
	if (gspca_dev->cam.reverse_alts) {
		if (gspca_dev->audio)
		if (gspca_dev->audio && i < gspca_dev->nbalt - 2)
			i++;
			i++;
		while (++i < gspca_dev->nbalt) {
		while (++i < gspca_dev->nbalt) {
			ep = alt_xfer(&intf->altsetting[i], xfer);
			ep = alt_xfer(&intf->altsetting[i], xfer);
@@ -660,7 +660,7 @@ static struct usb_host_endpoint *get_ep(struct gspca_dev *gspca_dev)
				break;
				break;
		}
		}
	} else {
	} else {
		if (gspca_dev->audio)
		if (gspca_dev->audio && i > 1)
			i--;
			i--;
		while (--i >= 0) {
		while (--i >= 0) {
			ep = alt_xfer(&intf->altsetting[i], xfer);
			ep = alt_xfer(&intf->altsetting[i], xfer);