summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-02-09 14:51:40 +0530
committerVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-02-09 17:00:43 +0530
commita799a397d20ee441167d7e686c519b6584600389 (patch)
tree6e573d621beceb60a2b5f1988cedade9f3ae37d0 /drivers/usb
parent110e102fe3de3bf08fcdb3f2117530f632c5a99f (diff)
USB: qc_rndis: Fix aggregation parameters settings issue
Currently driver does read max Transfer size from RNDIS_MSG_INIT control message, when received from Host, but it is wrongly being decoded due to wrong offset used. This leads dl_aggregation size set to 0 instead of required rndis_dl_aggr_size. Hence fix this by incrementing tmp pointer for requestID to use correct offset to read max Transfer size and set DL aggregation size correctly. Also pass maxpkt_per_xfer as zero to rndis_qc_bind_config_vendor() so that UL aggregation buffer size will be set to aggregation of 15 packets. This helps in improving througput numbers. Change-Id: Icc7506b57d26f82e6bf81f9d7dc1515cfbae6c82 Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/function/f_qc_rndis.c2
-rw-r--r--drivers/usb/gadget/function/rndis.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/gadget/function/f_qc_rndis.c b/drivers/usb/gadget/function/f_qc_rndis.c
index 061095b78c37..baffff7e52e9 100644
--- a/drivers/usb/gadget/function/f_qc_rndis.c
+++ b/drivers/usb/gadget/function/f_qc_rndis.c
@@ -1257,7 +1257,7 @@ usb_function *rndis_qc_bind_config_vendor(struct usb_function_instance *fi,
static struct usb_function *qcrndis_alloc(struct usb_function_instance *fi)
{
- return rndis_qc_bind_config_vendor(fi, 0, NULL, 1, 0);
+ return rndis_qc_bind_config_vendor(fi, 0, NULL, 0, 0);
}
static int rndis_qc_open_dev(struct inode *ip, struct file *fp)
diff --git a/drivers/usb/gadget/function/rndis.c b/drivers/usb/gadget/function/rndis.c
index 93262f3034d1..b2f082d64855 100644
--- a/drivers/usb/gadget/function/rndis.c
+++ b/drivers/usb/gadget/function/rndis.c
@@ -816,6 +816,7 @@ int rndis_msg_parser(struct rndis_params *params, u8 *buf)
case RNDIS_MSG_INIT:
pr_debug("%s: RNDIS_MSG_INIT\n",
__func__);
+ tmp++; /* to get RequestID */
major = get_unaligned_le32(tmp++);
minor = get_unaligned_le32(tmp++);
max_transfer_size = get_unaligned_le32(tmp++);