|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [linux-2.6.18-xen] usbback: fix urb interval value for i
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1239022280 -3600
# Node ID 950b9eb2766128f85adf52d5aabcd15eb8c77dc0
# Parent 711e402bc1419368b6342d380dfc50940b867cbe
usbback: fix urb interval value for interrupt urbs.
Signed-off-by: Noboru Iwamatsu <n_iwamatsu@xxxxxxxxxxxxxx>
---
drivers/xen/usbback/usbback.c | 12 ++++++++++++
1 files changed, 12 insertions(+)
diff -r 711e402bc141 -r 950b9eb27661 drivers/xen/usbback/usbback.c
--- a/drivers/xen/usbback/usbback.c Mon Apr 06 13:48:03 2009 +0100
+++ b/drivers/xen/usbback/usbback.c Mon Apr 06 13:51:20 2009 +0100
@@ -470,6 +470,18 @@ static void usbbk_init_urb(usbif_request
pending_req->buffer, req->buffer_length,
usbbk_urb_complete,
pending_req, req->u.intr.interval);
+ /*
+ * high speed interrupt endpoints use a logarithmic encoding of
+ * the endpoint interval, and usb_fill_int_urb() initializes a
+ * interrupt urb with the encoded interval value.
+ *
+ * req->u.intr.interval is the interval value that already
+ * encoded in the frontend part, and the above
usb_fill_int_urb()
+ * initializes the urb->interval with double encoded value.
+ *
+ * so, simply overwrite the urb->interval with original value.
+ */
+ urb->interval = req->u.intr.interval;
urb->transfer_flags = req->transfer_flags;
break;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [linux-2.6.18-xen] usbback: fix urb interval value for interrupt urbs.,
Xen patchbot-linux-2.6.18-xen <=
|
|
|
|
|