summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMayank Rana <mrana@codeaurora.org>2016-05-11 18:26:35 -0700
committerJeevan Shriram <jshriram@codeaurora.org>2016-05-18 13:39:23 -0700
commit1b30680459373432fdce21746fea58cb50e040ed (patch)
treee902419509ffd9822f40f755eeb9c7e7d6d8f461 /drivers
parente02de095f4c7c12db7ebc973ea7d74e96a7ebfdb (diff)
usb: gadget: gsi: Decrement USB gadget pm usage count on cable disconnect
Currently USB GSI function driver increments USB gadget device's pm usage count on set_alt() and decrements on USB bus suspend or USB cable disconnect case. Current code is not decrementing this usage count when sm_state is STATE_INITIALIZED and USB cable is disconnected (i.e. event EVT_DISCONNECTED posted). Fix this issue by decrementing USB gadget device's pm usage count by addding check for event EVT_DISCONNECTED when sm_state is STATE_INITIALIZED. CRs-Fixed: 1003242 Change-Id: I4d6c9ce254f4c4139313dfd33da6c8745f34a1d3 Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/gadget/function/f_gsi.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c
index 1cb5d945ba7e..4274d6962a78 100644
--- a/drivers/usb/gadget/function/f_gsi.c
+++ b/drivers/usb/gadget/function/f_gsi.c
@@ -568,6 +568,11 @@ static void ipa_work_handler(struct work_struct *w)
d_port->sm_state = STATE_CONNECTED;
log_event_dbg("%s: ST_INIT_EVT_HOST_READY",
__func__);
+ } else if (event == EVT_DISCONNECTED) {
+ usb_gadget_autopm_put_async(d_port->gadget);
+ log_event_dbg("%s: ST_INIT_EVT_DISC", __func__);
+ log_event_dbg("%s: put_async1 = %d", __func__,
+ atomic_read(&gad_dev->power.usage_count));
}
break;
case STATE_CONNECT_IN_PROGRESS: