From 5960c9eff7dcaba0a9178e229fbc9c576b552803 Mon Sep 17 00:00:00 2001 From: Mayank Rana Date: Fri, 28 Jun 2019 16:30:04 -0700 Subject: [PATCH] f_gsi: Increase MBIM IN aggregation to 31KB This change increases MBIM IN aggregation and related TRB buffer size from 16KB to 31KB. With this aggregation change, DL throughput is increased form 4.2 Gbps to 4.7 Gbps. Also reduced OUT buffer size from 31KB to 16 KB (i.e. as equal to size of OUT aggregation). Change-Id: Ida6444536f27f385034fefc71e663d7b7ce5626f Signed-off-by: Mayank Rana Signed-off-by: Elson Roy Serrao --- drivers/usb/gadget/function/f_gsi.c | 2 +- drivers/usb/gadget/function/f_gsi.h | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c index 696eba43e0b5..1111b88c6516 100644 --- a/drivers/usb/gadget/function/f_gsi.c +++ b/drivers/usb/gadget/function/f_gsi.c @@ -3213,7 +3213,7 @@ static int gsi_bind(struct usb_configuration *c, struct usb_function *f) gsi->d_port.in_aggr_size = GSI_IN_MBIM_AGGR_SIZE; info.in_req_buf_len = GSI_IN_MBIM_AGGR_SIZE; info.in_req_num_buf = GSI_NUM_IN_BUFFERS; - gsi->d_port.out_aggr_size = GSI_OUT_AGGR_SIZE; + gsi->d_port.out_aggr_size = GSI_OUT_MBIM_AGGR_SIZE; info.out_req_buf_len = GSI_OUT_MBIM_BUF_LEN; info.out_req_num_buf = GSI_NUM_OUT_BUFFERS; info.notify_buf_len = sizeof(struct usb_cdc_notification); diff --git a/drivers/usb/gadget/function/f_gsi.h b/drivers/usb/gadget/function/f_gsi.h index b82f2390d1aa..1f6da2b2d8e9 100644 --- a/drivers/usb/gadget/function/f_gsi.h +++ b/drivers/usb/gadget/function/f_gsi.h @@ -44,8 +44,9 @@ #define GSI_OUT_AGGR_SIZE 24576 #define GSI_IN_RNDIS_AGGR_SIZE 16384 -#define GSI_IN_MBIM_AGGR_SIZE 16384 +#define GSI_IN_MBIM_AGGR_SIZE 31744 #define GSI_IN_RMNET_AGGR_SIZE 16384 +#define GSI_OUT_MBIM_AGGR_SIZE 16384 #define GSI_ECM_AGGR_SIZE 2048 #ifdef CONFIG_USB_LOW_MEM_VARIANT @@ -796,7 +797,8 @@ static struct usb_gadget_strings *rndis_gsi_strings[] = { }; /* mbim device descriptors */ -#define MBIM_NTB_DEFAULT_IN_SIZE (0x4000) +#define MBIM_NTB_DEFAULT_IN_SIZE GSI_IN_MBIM_AGGR_SIZE +#define MBIM_NTB_DEFAULT_OUT_SIZE GSI_OUT_MBIM_AGGR_SIZE static struct usb_cdc_ncm_ntb_parameters mbim_gsi_ntb_parameters = { .wLength = cpu_to_le16(sizeof(mbim_gsi_ntb_parameters)), @@ -806,7 +808,7 @@ static struct usb_cdc_ncm_ntb_parameters mbim_gsi_ntb_parameters = { .wNdpInPayloadRemainder = cpu_to_le16(0), .wNdpInAlignment = cpu_to_le16(4), - .dwNtbOutMaxSize = cpu_to_le32(0x4000), + .dwNtbOutMaxSize = cpu_to_le32(MBIM_NTB_DEFAULT_OUT_SIZE), .wNdpOutDivisor = cpu_to_le16(4), .wNdpOutPayloadRemainder = cpu_to_le16(0), .wNdpOutAlignment = cpu_to_le16(4),