For usb2 bMaxPacketSize0 is "n", for usb3 it is "1 << n",
so it must be 9 not 64 ...
rom "Universal Serial Bus 3.1 Specification":
If the device is operating at Gen X speed, the bMaxPacketSize0
field shall be set to 09H indicating a 512-byte maximum packet.
An Enhanced SuperSpeed device shall not support any other maximum
packet sizes for the default control pipe (endpoint 0) control
endpoint.
We now announce a 512-byte maximum packet.
Fixes: 89a453d4a5c ("uas-uas: usb3 streams")
Reported-by: Benjamin David Lunt <fys@fysnet.net>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
---
hw/usb/dev-uas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c
index 6d6d1073b907..1bc4dd4fafb8 100644
--- a/hw/usb/dev-uas.c
+++ b/hw/usb/dev-uas.c
@@ -303,7 +303,7 @@ static const USBDescDevice desc_device_high = {
static const USBDescDevice desc_device_super = {
.bcdUSB = 0x0300,
- .bMaxPacketSize0 = 64,
+ .bMaxPacketSize0 = 9,
.bNumConfigurations = 1,
.confs = (USBDescConfig[]) {
{
--
2.18.1
On 1/17/20 8:37 AM, Gerd Hoffmann wrote: > For usb2 bMaxPacketSize0 is "n", for usb3 it is "1 << n", > so it must be 9 not 64 ... > > rom "Universal Serial Bus 3.1 Specification": Oops typo "From" ;) You can obviously fix that directly on your tree, no need for v3. Thanks for the v2! > > If the device is operating at Gen X speed, the bMaxPacketSize0 > field shall be set to 09H indicating a 512-byte maximum packet. > An Enhanced SuperSpeed device shall not support any other maximum > packet sizes for the default control pipe (endpoint 0) control > endpoint. > > We now announce a 512-byte maximum packet. > > Fixes: 89a453d4a5c ("uas-uas: usb3 streams") > Reported-by: Benjamin David Lunt <fys@fysnet.net> > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/usb/dev-uas.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c > index 6d6d1073b907..1bc4dd4fafb8 100644 > --- a/hw/usb/dev-uas.c > +++ b/hw/usb/dev-uas.c > @@ -303,7 +303,7 @@ static const USBDescDevice desc_device_high = { > > static const USBDescDevice desc_device_super = { > .bcdUSB = 0x0300, > - .bMaxPacketSize0 = 64, > + .bMaxPacketSize0 = 9, > .bNumConfigurations = 1, > .confs = (USBDescConfig[]) { > { >
I am okay with this patch. Thank you. Ben > -----Original Message----- > From: Gerd Hoffmann <kraxel@redhat.com> > Sent: Friday, January 17, 2020 12:37 AM > To: qemu-devel@nongnu.org > Cc: fys@fysnet.net; Gerd Hoffmann <kraxel@redhat.com> > Subject: [PATCH v2] uas: fix super speed bMaxPacketSize0 > > For usb2 bMaxPacketSize0 is "n", for usb3 it is "1 << n", so it must be 9 not 64 > ... > > rom "Universal Serial Bus 3.1 Specification": > > If the device is operating at Gen X speed, the bMaxPacketSize0 > field shall be set to 09H indicating a 512-byte maximum packet. > An Enhanced SuperSpeed device shall not support any other maximum > packet sizes for the default control pipe (endpoint 0) control > endpoint. > > We now announce a 512-byte maximum packet. > > Fixes: 89a453d4a5c ("uas-uas: usb3 streams") > Reported-by: Benjamin David Lunt <fys@fysnet.net> > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > hw/usb/dev-uas.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/usb/dev-uas.c b/hw/usb/dev-uas.c index > 6d6d1073b907..1bc4dd4fafb8 100644 > --- a/hw/usb/dev-uas.c > +++ b/hw/usb/dev-uas.c > @@ -303,7 +303,7 @@ static const USBDescDevice desc_device_high = { > > static const USBDescDevice desc_device_super = { > .bcdUSB = 0x0300, > - .bMaxPacketSize0 = 64, > + .bMaxPacketSize0 = 9, > .bNumConfigurations = 1, > .confs = (USBDescConfig[]) { > { > -- > 2.18.1
© 2016 - 2024 Red Hat, Inc.