qcacld-3.0: Keep HW mode in sync with FW when hdd stop happens

Stop the opportunistic timer & take action to keep HW mode in sync
when hdd stop happens.

Change-Id: Id34adb579987605831d2c7c4e22c2d76fe7d25dd
CRs-Fixed: 2165105
This commit is contained in:
Tushnim Bhattacharyya 2017-12-27 14:01:31 -08:00 • committed by snandini
commit 9bd058f5d4

View file

@ -2846,8 +2846,6 @@ static int __hdd_stop(struct net_device *dev)
if (WLAN_HDD_IS_NDI(adapter))
return 0;
policy_mgr_check_and_stop_opportunistic_timer(hdd_ctx->hdd_psoc);
/*
* The interface is marked as down for outside world (aka kernel)
* But the driver is pretty much alive inside. The driver needs to
@ -4570,6 +4568,17 @@ QDF_STATUS hdd_stop_adapter(struct hdd_context *hdd_ctx,
wlan_hdd_netif_queue_control(adapter,
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
WLAN_CONTROL_PATH);
/*
* if this is the last active connection check & stop the
* opportunistic timer first
*/
if (((policy_mgr_get_connection_count(hdd_ctx->hdd_psoc) == 1) &&
(policy_mgr_mode_specific_connection_count(hdd_ctx->hdd_psoc,
policy_mgr_convert_device_mode_to_qdf_type(
adapter->device_mode), NULL) == 1)) ||
!policy_mgr_get_connection_count(hdd_ctx->hdd_psoc))
policy_mgr_check_and_stop_opportunistic_timer(
hdd_ctx->hdd_psoc, adapter->session_id);
switch (adapter->device_mode) {
case QDF_STA_MODE:
case QDF_P2P_CLIENT_MODE: