diff options
| author | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2017-02-09 14:51:40 +0530 |
|---|---|---|
| committer | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2017-02-09 17:00:43 +0530 |
| commit | a799a397d20ee441167d7e686c519b6584600389 (patch) | |
| tree | 6e573d621beceb60a2b5f1988cedade9f3ae37d0 /drivers/usb/gadget/function | |
| parent | 110e102fe3de3bf08fcdb3f2117530f632c5a99f (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/gadget/function')
| -rw-r--r-- | drivers/usb/gadget/function/f_qc_rndis.c | 2 | ||||
| -rw-r--r-- | drivers/usb/gadget/function/rndis.c | 1 |
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++); |
