diff options
author | Thomas Pugliese <thomas.pugliese@gmail.com> | 2014-01-24 18:17:28 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-02-28 13:21:57 -0300 |
commit | 79af67e77f86404e77e65ad954bfe5030db2ca02 (patch) | |
tree | aa0087798cf43ca712362a5f5c3c8da1f43a26e2 /drivers/media/usb/uvc/uvc_video.c | |
parent | daf41ac2c4b5b2e663079ccc58b8d6a70a3c111b (diff) | |
download | op-kernel-dev-79af67e77f86404e77e65ad954bfe5030db2ca02.zip op-kernel-dev-79af67e77f86404e77e65ad954bfe5030db2ca02.tar.gz |
[media] uvcvideo: Update uvc_endpoint_max_bpi to handle USB_SPEED_WIRELESS devices
Isochronous endpoints on devices with speed == USB_SPEED_WIRELESS can
have a max packet size ranging from 1-3584 bytes. Add a case to
uvc_endpoint_max_bpi to handle USB_SPEED_WIRELESS. Otherwise endpoints
for those devices will fall to the default case which masks off any
values > 2047. This causes uvc_init_video to underestimate the
bandwidth available and fail to find a suitable alt setting for high
bandwidth video streams.
Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
Diffstat (limited to 'drivers/media/usb/uvc/uvc_video.c')
-rw-r--r-- | drivers/media/usb/uvc/uvc_video.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c index 898c208..103cd4e 100644 --- a/drivers/media/usb/uvc/uvc_video.c +++ b/drivers/media/usb/uvc/uvc_video.c @@ -1453,6 +1453,9 @@ static unsigned int uvc_endpoint_max_bpi(struct usb_device *dev, case USB_SPEED_HIGH: psize = usb_endpoint_maxp(&ep->desc); return (psize & 0x07ff) * (1 + ((psize >> 11) & 3)); + case USB_SPEED_WIRELESS: + psize = usb_endpoint_maxp(&ep->desc); + return psize; default: psize = usb_endpoint_maxp(&ep->desc); return psize & 0x07ff; |