Hi,

Greg KH <gre...@linuxfoundation.org> writes:
> On Sun, Nov 13, 2016 at 01:31:16PM +0300, Mike Krinkin wrote:
>> Since usb_endpoint_maxp now returns only lower 11 bits mult
>> calculation here isn't correct anymore and that breaks webcam
>> for me. Patch make use of usb_endpoint_maxp_mult instead of
>> direct calculation.
>> 
>> Fixes: abb621844f6a ("usb: ch9: make usb_endpoint_maxp() return
>>        only packet size")
>> 
>> Signed-off-by: Mike Krinkin <krinkin....@gmail.com>
>> ---
>>  drivers/usb/core/urb.c | 7 ++-----
>>  1 file changed, 2 insertions(+), 5 deletions(-)
>> 
>> diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
>> index 0be49a1..d75cb8c 100644
>> --- a/drivers/usb/core/urb.c
>> +++ b/drivers/usb/core/urb.c
>> @@ -412,11 +412,8 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
>>              }
>>  
>>              /* "high bandwidth" mode, 1-3 packets/uframe? */
>> -            if (dev->speed == USB_SPEED_HIGH) {
>> -                    int     mult = 1 + ((max >> 11) & 0x03);
>> -                    max &= 0x07ff;
>> -                    max *= mult;
>> -            }
>> +            if (dev->speed == USB_SPEED_HIGH)
>> +                    max *= usb_endpoint_maxp_mult(&ep->desc);
>>  
>>              if (urb->number_of_packets <= 0)
>>                      return -EINVAL;
>
> Felipe, this looks like it belongs in your tree...

Right, I've queued it up :-)

-- 
balbi

Attachment: signature.asc
Description: PGP signature

Reply via email to