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

Commit 7106225a authored by Patrice Chotard's avatar Patrice Chotard Committed by Mauro Carvalho Chehab
Browse files

[media] gspca - main: Add endpoint direction test in alt_xfer



This patch fixes a bug in gspca, more precisely in alt_xfer().

This function looks for an input transfer endpoint in an alternate setting.
By default it returns the first endpoint corresponding to the transfer type
indicated in parameter.
But with some USB devices, the first endpoint corresponding to the transfer
type is not always an INPUT endpoint but an OUTPUT one.

This patch adds the endpoint direction test to be sure to return an INPUT endpoint

Signed-off-by: default avatarPatrice CHOTARD <patricechotard@free.fr>
Signed-off-by: default avatarJean-François Moine <moinejf@free.fr>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 8e3c08bb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -630,7 +630,8 @@ static struct usb_host_endpoint *alt_xfer(struct usb_host_interface *alt,
		ep = &alt->endpoint[i];
		attr = ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
		if (attr == xfer
		    && ep->desc.wMaxPacketSize != 0)
		    && ep->desc.wMaxPacketSize != 0
		    && usb_endpoint_dir_in(&ep->desc))
			return ep;
	}
	return NULL;