[PATCH v2] uas: fix super speed bMaxPacketSize0

Gerd Hoffmann posted 1 patch 4 years, 3 months ago
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test FreeBSD passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200117073716.31335-1-kraxel@redhat.com
Maintainers: Gerd Hoffmann <kraxel@redhat.com>
hw/usb/dev-uas.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] uas: fix super speed bMaxPacketSize0
Posted by Gerd Hoffmann 4 years, 3 months ago
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


Re: [PATCH v2] uas: fix super speed bMaxPacketSize0
Posted by Philippe Mathieu-Daudé 4 years, 3 months ago
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[]) {
>           {
> 


RE: [PATCH v2] uas: fix super speed bMaxPacketSize0
Posted by fys@fysnet.net 4 years, 3 months ago
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