]>
Commit | Line | Data |
---|---|---|
d86d85d9 GKH |
1 | From f43402fa55bf5e7e190c176343015122f694857c Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Moine?= <moinejf@free.fr> | |
3 | Date: Sat, 16 Oct 2010 13:54:05 -0300 | |
4 | Subject: [media] gspca - main: Fix a regression with the PS3 Eye webcam | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Moine?= <moinejf@free.fr> | |
10 | ||
11 | commit f43402fa55bf5e7e190c176343015122f694857c upstream. | |
12 | ||
13 | When audio is present, some alternate settings were skipped. | |
14 | This prevented some webcams to work, especially when bulk transfer was used. | |
15 | This patch permits to use the last or only alternate setting. | |
16 | ||
17 | Reported-by: Antonio Ospite <ospite@studenti.unina.it> | |
18 | Tested-by: Antonio Ospite <ospite@studenti.unina.it> | |
19 | Signed-off-by: Jean-François Moine <moinejf@free.fr> | |
20 | Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> | |
21 | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> | |
22 | ||
23 | --- | |
24 | drivers/media/video/gspca/gspca.c | 4 ++-- | |
25 | 1 file changed, 2 insertions(+), 2 deletions(-) | |
26 | ||
27 | --- a/drivers/media/video/gspca/gspca.c | |
28 | +++ b/drivers/media/video/gspca/gspca.c | |
29 | @@ -652,7 +652,7 @@ static struct usb_host_endpoint *get_ep( | |
30 | : USB_ENDPOINT_XFER_ISOC; | |
31 | i = gspca_dev->alt; /* previous alt setting */ | |
32 | if (gspca_dev->cam.reverse_alts) { | |
33 | - if (gspca_dev->audio) | |
34 | + if (gspca_dev->audio && i < gspca_dev->nbalt - 2) | |
35 | i++; | |
36 | while (++i < gspca_dev->nbalt) { | |
37 | ep = alt_xfer(&intf->altsetting[i], xfer); | |
38 | @@ -660,7 +660,7 @@ static struct usb_host_endpoint *get_ep( | |
39 | break; | |
40 | } | |
41 | } else { | |
42 | - if (gspca_dev->audio) | |
43 | + if (gspca_dev->audio && i > 1) | |
44 | i--; | |
45 | while (--i >= 0) { | |
46 | ep = alt_xfer(&intf->altsetting[i], xfer); |