|
@@ -1467,6 +1467,7 @@ static unsigned int uvc_endpoint_max_bpi(struct usb_device *dev,
|
|
struct usb_host_endpoint *ep)
|
|
struct usb_host_endpoint *ep)
|
|
{
|
|
{
|
|
u16 psize;
|
|
u16 psize;
|
|
|
|
+ u16 mult;
|
|
|
|
|
|
switch (dev->speed) {
|
|
switch (dev->speed) {
|
|
case USB_SPEED_SUPER:
|
|
case USB_SPEED_SUPER:
|
|
@@ -1474,7 +1475,8 @@ static unsigned int uvc_endpoint_max_bpi(struct usb_device *dev,
|
|
return le16_to_cpu(ep->ss_ep_comp.wBytesPerInterval);
|
|
return le16_to_cpu(ep->ss_ep_comp.wBytesPerInterval);
|
|
case USB_SPEED_HIGH:
|
|
case USB_SPEED_HIGH:
|
|
psize = usb_endpoint_maxp(&ep->desc);
|
|
psize = usb_endpoint_maxp(&ep->desc);
|
|
- return (psize & 0x07ff) * (1 + ((psize >> 11) & 3));
|
|
|
|
|
|
+ mult = usb_endpoint_maxp_mult(&ep->desc);
|
|
|
|
+ return (psize & 0x07ff) * mult;
|
|
case USB_SPEED_WIRELESS:
|
|
case USB_SPEED_WIRELESS:
|
|
psize = usb_endpoint_maxp(&ep->desc);
|
|
psize = usb_endpoint_maxp(&ep->desc);
|
|
return psize;
|
|
return psize;
|