summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Liu <kaliu@codeaurora.org>2016-09-22 14:51:12 +0800
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-09-27 15:25:55 +0530
commita1200b90eb31ac882ce908d94cc9410a425531d2 (patch)
treef2b1b797a1e9909bc30227716516c24db4d9ba6f
parent90213394b7efb28fa511b2eaebc1343ae3b54724 (diff)
qcacld-2.0: Reduce hif usb remove time when card surprise-removed
In USB solution, hif_usb_remove costs ~25s after card unplugged. Test step is simple, do p2p listen, then unplug card. The cost mainly focus on two parts 1. Sme session close costs 15s. When do p2p listen, scan will be issued to fw, but this cmd is stuck in smeScanCmdActiveList which cause session close cmd eSmeCommandDelStaSession blocked and the timeout is 15s. 2. wma_suspend_target in wma_stop costs 6s. Actually suspend is no need in such case. This change is to fix issue 2 that in such situation suspend is no need, so skip suspend. Change-Id: I1ba4c4559c8736ddaa848228bcec118e6308e8d9 CRs-Fixed: 1068739
-rw-r--r--CORE/SERVICES/HIF/USB/if_usb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/CORE/SERVICES/HIF/USB/if_usb.c b/CORE/SERVICES/HIF/USB/if_usb.c
index ea8a7fe6ef88..b934ac2c2567 100644
--- a/CORE/SERVICES/HIF/USB/if_usb.c
+++ b/CORE/SERVICES/HIF/USB/if_usb.c
@@ -271,6 +271,7 @@ static void hif_usb_remove(struct usb_interface *interface)
usb_sc->hdd_removed_wait_cnt ++;
}
atomic_set(&usb_sc->hdd_removed_processing, 1);
+ vos_set_shutdown_in_progress(VOS_MODULE_ID_HIF, TRUE);
/* disable lpm to avoid following cold reset will
*cause xHCI U1/U2 timeout
@@ -315,6 +316,7 @@ static void hif_usb_remove(struct usb_interface *interface)
hif_nointrs(sc);
HIF_USBDeviceDetached(interface, 1);
+ vos_set_shutdown_in_progress(VOS_MODULE_ID_HIF, FALSE);
atomic_set(&usb_sc->hdd_removed_processing, 0);
hif_deinit_adf_ctx(scn);
A_FREE(scn);