summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorRakesh Bodla <rbodla@nvidia.com>2014-03-19 20:50:50 +0530
committerRiham Haidar <rhaidar@nvidia.com>2014-05-12 11:52:02 -0700
commitdeaae5d93c3fec32b9c4c4b8b954ce9a5fe98a4a (patch)
tree0a462d914b117061b79ef947f78746119528441a /drivers/usb
parent4a52f15b168f758f72d6728bc81841923289e69d (diff)
usb: gadget: tegra:cancel non-standard charger work
When there is series of gadget_connect and gadget_disconnect calls, non standard charger detection work is getting sheduled. This is being executed due to there is no time window observed to see setup packet.Fixing this by canceling the work appropriately. Bug 1477692 Change-Id: I3460675c0ccbd251e3c3be217792d5a2fd44f85d Signed-off-by: Rakesh Bodla <rbodla@nvidia.com> Reviewed-on: http://git-master/r/406351 GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/tegra_udc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/usb/gadget/tegra_udc.c b/drivers/usb/gadget/tegra_udc.c
index 2f40ea5afdf6..3b0a710d6cda 100644
--- a/drivers/usb/gadget/tegra_udc.c
+++ b/drivers/usb/gadget/tegra_udc.c
@@ -1646,8 +1646,10 @@ static int tegra_pullup(struct usb_gadget *gadget, int is_on)
(udc->connect_type == CONNECT_TYPE_SDP))
schedule_delayed_work(&udc->non_std_charger_work,
msecs_to_jiffies(NON_STD_CHARGER_DET_TIME_MS));
- } else
+ } else {
+ cancel_delayed_work(&udc->non_std_charger_work);
udc_writel(udc, (tmp & ~USB_CMD_RUN_STOP), USB_CMD_REG_OFFSET);
+ }
DBG("%s(%d) END\n", __func__, __LINE__);
return 0;