USB: u_ether: Configure the endpoints before enabling them in eth_stop()
The endpoints fail to enable if they are not configured. Hence configure
the IN and OUT endpoints in eth_stop() function before enabling them.
Change-Id: I936c5c492054cbc16bde6f1d0414712d8a0048d7
Signed-off-by: Rajkumar Raghupathy <raghup@codeaurora.org>
diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c
index 9e3301f..62955c2 100644
--- a/drivers/usb/gadget/u_ether.c
+++ b/drivers/usb/gadget/u_ether.c
@@ -690,6 +690,14 @@
usb_ep_disable(link->in_ep);
usb_ep_disable(link->out_ep);
if (netif_carrier_ok(net)) {
+ if (config_ep_by_speed(dev->gadget, &link->func,
+ link->in_ep) ||
+ config_ep_by_speed(dev->gadget, &link->func,
+ link->out_ep)) {
+ link->in_ep->desc = NULL;
+ link->out_ep->desc = NULL;
+ return -EINVAL;
+ }
DBG(dev, "host still using in/out endpoints\n");
usb_ep_enable(link->in_ep);
usb_ep_enable(link->out_ep);