summaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/function
diff options
context:
space:
mode:
authorBadhri Jagan Sridharan <Badhri@google.com>2014-09-18 10:48:48 -0700
committerJohn Stultz <john.stultz@linaro.org>2016-02-16 13:52:05 -0800
commitc3d7f0cdd24e3db82758cb5989e6e27a6ca270d1 (patch)
treef281abcd92bab8e92c5249381ec78185065c752a /drivers/usb/gadget/function
parentdebf5d6eacef1795d537c64992e8ffa6e7aec952 (diff)
ndis: Add debug support to disable RNDIS Multipacket Feature
This change adds module param which allows to disable RNDIS Multi-packet Feature (Aggregation support in Downlink path) as this feature is enabled by default. To disable use this param before moving to RNDIS Composition: echo 1 > /sys/module/g_android/parameters/rndis_multipacket_dl_disable Also counts errors as Rx errors if received RNDIS packets are not following RNDIS message format as those packets are being discarded. Change-Id: I764430da78f2204af92e14bb279c11b24c7e4c67 Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Diffstat (limited to 'drivers/usb/gadget/function')
-rw-r--r--drivers/usb/gadget/function/f_rndis.c2
-rw-r--r--drivers/usb/gadget/function/u_ether.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/gadget/function/f_rndis.c b/drivers/usb/gadget/function/f_rndis.c
index 07fad13f93d2..635bbbbd0639 100644
--- a/drivers/usb/gadget/function/f_rndis.c
+++ b/drivers/usb/gadget/function/f_rndis.c
@@ -480,6 +480,8 @@ static void rndis_command_complete(struct usb_ep *ep, struct usb_request *req)
__func__, buf->MaxTransferSize,
rndis->port.multi_pkt_xfer ? "enabled" :
"disabled");
+ if (rndis_multipacket_dl_disable)
+ rndis->port.multi_pkt_xfer = 0;
}
// spin_unlock(&dev->lock);
}
diff --git a/drivers/usb/gadget/function/u_ether.c b/drivers/usb/gadget/function/u_ether.c
index 25a77ce82caa..69bf03e04603 100644
--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
@@ -296,6 +296,10 @@ static void rx_complete(struct usb_ep *ep, struct usb_request *req)
status = dev->unwrap(dev->port_usb,
skb,
&dev->rx_frames);
+ if (status == -EINVAL)
+ dev->net->stats.rx_errors++;
+ else if (status == -EOVERFLOW)
+ dev->net->stats.rx_over_errors++;
} else {
dev_kfree_skb_any(skb);
status = -ENOTCONN;