mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-26 22:07:51 +00:00
189ce92b4c
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> Signed-off-by: Denys Dmytriyenko <denys@ti.com>
61 lines
2.0 KiB
Diff
61 lines
2.0 KiB
Diff
From bb6dfbca863a06884b7af33a6c46fddb690eb7d3 Mon Sep 17 00:00:00 2001
|
|
From: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
|
|
Date: Mon, 16 Apr 2012 14:19:07 -0700
|
|
Subject: [PATCH 041/117] usb: usbtest: two super speed fixes for usbtest
|
|
|
|
commit 6a23ccd216b6a8ba2c67a9f9d8969b4431ad2920 upstream.
|
|
|
|
bMaxPacketSize0 field for super speed is a power of 2, not a count.
|
|
The size itself is always 512.
|
|
|
|
Max packet size for a super speed bulk endpoint is 1024, so
|
|
allocate the urb size in halt_simple() accordingly.
|
|
|
|
Signed-off-by: Paul Zimmerman <paulz@synopsys.com>
|
|
Acked-by: Felipe Balbi <balbi@ti.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
|
---
|
|
drivers/usb/misc/usbtest.c | 17 ++++++++++++-----
|
|
1 file changed, 12 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
|
|
index bd6d008..b9ac9a3 100644
|
|
--- a/drivers/usb/misc/usbtest.c
|
|
+++ b/drivers/usb/misc/usbtest.c
|
|
@@ -1025,7 +1025,10 @@ test_ctrl_queue(struct usbtest_dev *dev, struct usbtest_param *param)
|
|
case 13: /* short read, resembling case 10 */
|
|
req.wValue = cpu_to_le16((USB_DT_CONFIG << 8) | 0);
|
|
/* last data packet "should" be DATA1, not DATA0 */
|
|
- len = 1024 - udev->descriptor.bMaxPacketSize0;
|
|
+ if (udev->speed == USB_SPEED_SUPER)
|
|
+ len = 1024 - 512;
|
|
+ else
|
|
+ len = 1024 - udev->descriptor.bMaxPacketSize0;
|
|
expected = -EREMOTEIO;
|
|
break;
|
|
case 14: /* short read; try to fill the last packet */
|
|
@@ -1384,11 +1387,15 @@ static int test_halt(struct usbtest_dev *tdev, int ep, struct urb *urb)
|
|
|
|
static int halt_simple(struct usbtest_dev *dev)
|
|
{
|
|
- int ep;
|
|
- int retval = 0;
|
|
- struct urb *urb;
|
|
+ int ep;
|
|
+ int retval = 0;
|
|
+ struct urb *urb;
|
|
+ struct usb_device *udev = testdev_to_usbdev(dev);
|
|
|
|
- urb = simple_alloc_urb(testdev_to_usbdev(dev), 0, 512);
|
|
+ if (udev->speed == USB_SPEED_SUPER)
|
|
+ urb = simple_alloc_urb(udev, 0, 1024);
|
|
+ else
|
|
+ urb = simple_alloc_urb(udev, 0, 512);
|
|
if (urb == NULL)
|
|
return -ENOMEM;
|
|
|
|
--
|
|
1.7.9.5
|
|
|