| From f43402fa55bf5e7e190c176343015122f694857c Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Moine?= <moinejf@free.fr> |
| Date: Sat, 16 Oct 2010 13:54:05 -0300 |
| Subject: [media] gspca - main: Fix a regression with the PS3 Eye webcam |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Moine?= <moinejf@free.fr> |
| |
| commit f43402fa55bf5e7e190c176343015122f694857c upstream. |
| |
| 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: Antonio Ospite <ospite@studenti.unina.it> |
| Tested-by: Antonio Ospite <ospite@studenti.unina.it> |
| Signed-off-by: Jean-Franรงois Moine <moinejf@free.fr> |
| Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/media/video/gspca/gspca.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/media/video/gspca/gspca.c |
| +++ b/drivers/media/video/gspca/gspca.c |
| @@ -652,7 +652,7 @@ static struct usb_host_endpoint *get_ep( |
| : USB_ENDPOINT_XFER_ISOC; |
| i = gspca_dev->alt; /* previous alt setting */ |
| if (gspca_dev->cam.reverse_alts) { |
| - if (gspca_dev->audio) |
| + if (gspca_dev->audio && i < gspca_dev->nbalt - 2) |
| i++; |
| while (++i < gspca_dev->nbalt) { |
| ep = alt_xfer(&intf->altsetting[i], xfer); |
| @@ -660,7 +660,7 @@ static struct usb_host_endpoint *get_ep( |
| break; |
| } |
| } else { |
| - if (gspca_dev->audio) |
| + if (gspca_dev->audio && i > 1) |
| i--; |
| while (--i >= 0) { |
| ep = alt_xfer(&intf->altsetting[i], xfer); |