Hi Bing, > For high-speed/super-speed isochronous endpoints, the bInterval > value is used as exponent, 2^(bInterval-1). Luckily we have > usb_fill_int_urb() function that handles it correctly. So we just > call this function to fill in the RX URB. > > Cc: Marcel Holtmann <marcel@xxxxxxxxxxxx> > Signed-off-by: Bing Zhao <bzhao@xxxxxxxxxxx> > --- > drivers/bluetooth/btusb.c | 9 ++------- > 1 files changed, 2 insertions(+), 7 deletions(-) > > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > index ea5ad1c..a67c6db 100644 > --- a/drivers/bluetooth/btusb.c > +++ b/drivers/bluetooth/btusb.c > @@ -508,15 +508,10 @@ static int btusb_submit_isoc_urb(struct hci_dev *hdev, gfp_t mem_flags) > > pipe = usb_rcvisocpipe(data->udev, data->isoc_rx_ep->bEndpointAddress); > > - urb->dev = data->udev; > - urb->pipe = pipe; > - urb->context = hdev; > - urb->complete = btusb_isoc_complete; > - urb->interval = data->isoc_rx_ep->bInterval; > + usb_fill_int_urb(urb, data->udev, pipe, buf, size, btusb_isoc_complete, > + hdev, data->isoc_rx_ep->bInterval); > > urb->transfer_flags = URB_FREE_BUFFER | URB_ISO_ASAP; > - urb->transfer_buffer = buf; > - urb->transfer_buffer_length = size; this looks better. And don't ask me why I did not do that from the beginning ;) Acked-by: Marcel Holtmann <marcel@xxxxxxxxxxxx> Regards Marcel -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html