diff options
author | Rakesh Bodla <rbodla@nvidia.com> | 2014-03-19 20:50:50 +0530 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2014-05-12 11:52:02 -0700 |
commit | deaae5d93c3fec32b9c4c4b8b954ce9a5fe98a4a (patch) | |
tree | 0a462d914b117061b79ef947f78746119528441a /drivers/usb | |
parent | 4a52f15b168f758f72d6728bc81841923289e69d (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.c | 4 |
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; |