usb: gadget: f_tcm: Increase bMaxBurst
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Wed, 11 Dec 2024 00:32:19 +0000 (00:32 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Dec 2024 07:56:06 +0000 (08:56 +0100)
Currently the default bMaxBurst is 0. Set default bMaxBurst to 15 (i.e.
16 bursts) to Data IN and OUT endpoints to improve performance. It
should be fine for a controller that supports less than 16 bursts. It
should be able to negotiate properly with the host at packet level for
the end of burst.

If the controller can't handle a burst of 16, and high performance isn't
important, the user can use BOT protocol from mass_storage gadget driver
instead.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/9d6265db4d138e542f281988362bc4392b034d43.1733876548.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/f_tcm.c

index 4fd56ae056a3bcd4df81fd66b0ab647552cd7965..1c93f07daa7b3b124f7310f6a8d8047c944f6f30 100644 (file)
@@ -1724,7 +1724,7 @@ static struct usb_endpoint_descriptor uasp_ss_bi_desc = {
 static struct usb_ss_ep_comp_descriptor uasp_bi_ep_comp_desc = {
        .bLength =              sizeof(uasp_bi_ep_comp_desc),
        .bDescriptorType =      USB_DT_SS_ENDPOINT_COMP,
-       .bMaxBurst =            0,
+       .bMaxBurst =            15,
        .bmAttributes =         UASP_SS_EP_COMP_LOG_STREAMS,
        .wBytesPerInterval =    0,
 };
@@ -1732,7 +1732,7 @@ static struct usb_ss_ep_comp_descriptor uasp_bi_ep_comp_desc = {
 static struct usb_ss_ep_comp_descriptor bot_bi_ep_comp_desc = {
        .bLength =              sizeof(bot_bi_ep_comp_desc),
        .bDescriptorType =      USB_DT_SS_ENDPOINT_COMP,
-       .bMaxBurst =            0,
+       .bMaxBurst =            15,
 };
 
 static struct usb_endpoint_descriptor uasp_bo_desc = {
@@ -1767,12 +1767,14 @@ static struct usb_endpoint_descriptor uasp_ss_bo_desc = {
 static struct usb_ss_ep_comp_descriptor uasp_bo_ep_comp_desc = {
        .bLength =              sizeof(uasp_bo_ep_comp_desc),
        .bDescriptorType =      USB_DT_SS_ENDPOINT_COMP,
+       .bMaxBurst =            15,
        .bmAttributes =         UASP_SS_EP_COMP_LOG_STREAMS,
 };
 
 static struct usb_ss_ep_comp_descriptor bot_bo_ep_comp_desc = {
        .bLength =              sizeof(bot_bo_ep_comp_desc),
        .bDescriptorType =      USB_DT_SS_ENDPOINT_COMP,
+       .bMaxBurst =            15,
 };
 
 static struct usb_endpoint_descriptor uasp_status_desc = {