From 4f6ad44ccaa01651932d170c518c627bbbc32173 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 30 Dec 2011 07:58:10 -0300 Subject: [PATCH] --- yaml --- r: 285679 b: refs/heads/master c: 66957b864646e2ea0aebc66d1173f39a63509a19 h: refs/heads/master i: 285677: 3528012899f784c06f764ff44b0d76dfb39bdb9c 285675: 168f564498a06f8322b8a56d5377e196858a14c5 285671: 01120613fbe53926ccdac1be6a642c4ea8d9d5b0 285663: 6d5abc66e4f2b93136e2fdc57d6678e75c49bcd0 v: v3 --- [refs] | 2 +- trunk/drivers/media/video/gspca/gspca.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 9056b80955cf..5394d4828d2c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 18bef42c2d9a63e028261b88e9202b6d0d34292b +refs/heads/master: 66957b864646e2ea0aebc66d1173f39a63509a19 diff --git a/trunk/drivers/media/video/gspca/gspca.c b/trunk/drivers/media/video/gspca/gspca.c index cdd43ff4aa02..5b8f4fc5d1c6 100644 --- a/trunk/drivers/media/video/gspca/gspca.c +++ b/trunk/drivers/media/video/gspca/gspca.c @@ -675,9 +675,8 @@ struct ep_tb_s { * build the table of the endpoints * and compute the minimum bandwidth for the image transfer */ -static int build_ep_tb(struct gspca_dev *gspca_dev, +static int build_isoc_ep_tb(struct gspca_dev *gspca_dev, struct usb_interface *intf, - int xfer, struct ep_tb_s *ep_tb) { struct usb_host_endpoint *ep; @@ -695,13 +694,12 @@ static int build_ep_tb(struct gspca_dev *gspca_dev, ep_tb->bandwidth = 2000 * 2000 * 120; found = 0; for (j = 0; j < nbalt; j++) { - ep = alt_xfer(&intf->altsetting[j], xfer); + ep = alt_xfer(&intf->altsetting[j], + USB_ENDPOINT_XFER_ISOC); if (ep == NULL) continue; psize = le16_to_cpu(ep->desc.wMaxPacketSize); - if (!gspca_dev->cam.bulk) /* isoc */ - psize = (psize & 0x07ff) * - (1 + ((psize >> 11) & 3)); + psize = (psize & 0x07ff) * (1 + ((psize >> 11) & 3)); bandwidth = psize * ep->desc.bInterval * 1000; if (gspca_dev->dev->speed == USB_SPEED_HIGH || gspca_dev->dev->speed == USB_SPEED_SUPER) @@ -856,7 +854,7 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev) xfer = gspca_dev->cam.bulk ? USB_ENDPOINT_XFER_BULK : USB_ENDPOINT_XFER_ISOC; - /* if the subdriver forced an altsetting, get the endpoint */ + /* if bulk or the subdriver forced an altsetting, get the endpoint */ if (gspca_dev->alt != 0) { gspca_dev->alt--; /* (previous version compatibility) */ ep = alt_xfer(&intf->altsetting[gspca_dev->alt], xfer); @@ -871,7 +869,7 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev) /* else, compute the minimum bandwidth * and build the endpoint table */ - alt_idx = build_ep_tb(gspca_dev, intf, xfer, ep_tb); + alt_idx = build_isoc_ep_tb(gspca_dev, intf, ep_tb); if (alt_idx <= 0) { pr_err("no transfer endpoint found\n"); ret = -EIO;