mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
[media] gspca core: Fix regressions gspca breaking devices with audio
Changeset 35680ba
broke several devices:
- Sony Playstation Eye (1415:2000);
- Gigaware model 25-234 (0c45:628f);
- Logitech Messenger Plus (046d:08f6).
Probably more devices were broken by this change.
What happens is that several devices don't need to save some bandwidth
for audio.
Also, as pointed by Hans de Goede <hdegoede@redhat.com>, the logic
that implements the bandwidth reservation for audio is broken, since
it will reduce the alt number twice, on devices with audio.
So, let's just revert the broken logic, and think on a better solution
for usb 1.1 devices with audio that can't use the maximum packetsize.
Acked-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
86701c1d6a
commit
d4b416f262
@ -652,16 +652,12 @@ static struct usb_host_endpoint *get_ep(struct gspca_dev *gspca_dev)
|
||||
: USB_ENDPOINT_XFER_ISOC;
|
||||
i = gspca_dev->alt; /* previous alt setting */
|
||||
if (gspca_dev->cam.reverse_alts) {
|
||||
if (gspca_dev->audio && i < gspca_dev->nbalt - 2)
|
||||
i++;
|
||||
while (++i < gspca_dev->nbalt) {
|
||||
ep = alt_xfer(&intf->altsetting[i], xfer);
|
||||
if (ep)
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (gspca_dev->audio && i > 1)
|
||||
i--;
|
||||
while (--i >= 0) {
|
||||
ep = alt_xfer(&intf->altsetting[i], xfer);
|
||||
if (ep)
|
||||
|
Loading…
Reference in New Issue
Block a user