qcacld-3.0: wait tx complete before vdev stop
Before VDEV_STOP is initiated by host, sometimes there are outstanding mgmt tx pkts left in FW. need wait all tx complete, or peer vdev ref count keep held. In P2P GO/SAP mode, no wait since wma->interfaces[session_id].delay_before_vdev_stop is 0, ini relative cfg isn't passed to wma at all. Change-Id: I1c3d137bb08624e30cc220e0fa0e31e6d6fc8a9d CRs-Fixed: 2184096
This commit is contained in:

committed by
snandini

orang tua
0a7325aacc
melakukan
a2f8e8dbe1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -110,6 +110,7 @@ enum active_bpf_mode {
|
||||
* @force_target_assert_enabled: Indicate whether target assert enabled or not
|
||||
* @bandcapability: Configured band by user
|
||||
* @rps_enabled: RPS enabled in SAP mode
|
||||
* @delay_before_vdev_stop: wait time for tx complete before vdev stop
|
||||
* Structure for holding cds ini parameters.
|
||||
*/
|
||||
|
||||
@@ -171,6 +172,7 @@ struct cds_config_info {
|
||||
bool force_target_assert_enabled;
|
||||
uint8_t bandcapability;
|
||||
bool rps_enabled;
|
||||
uint8_t delay_before_vdev_stop;
|
||||
};
|
||||
|
||||
#ifdef WLAN_FEATURE_FILS_SK
|
||||
|
@@ -8874,6 +8874,8 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
|
||||
|
||||
cds_cfg->ito_repeat_count = hdd_ctx->config->ito_repeat_count;
|
||||
cds_cfg->bandcapability = hdd_ctx->config->nBandCapability;
|
||||
cds_cfg->delay_before_vdev_stop =
|
||||
hdd_ctx->config->delay_before_vdev_stop;
|
||||
|
||||
hdd_ra_populate_cds_config(cds_cfg, hdd_ctx);
|
||||
hdd_txrx_populate_cds_config(cds_cfg, hdd_ctx);
|
||||
|
@@ -5327,7 +5327,6 @@ fail_del_bss_ho_fail:
|
||||
(void *)params, 0);
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_HOST_ROAM
|
||||
/**
|
||||
* wma_wait_tx_complete() - Wait till tx packets are drained
|
||||
* @wma: wma handle
|
||||
@@ -5365,12 +5364,6 @@ static void wma_wait_tx_complete(tp_wma_handle wma,
|
||||
max_wait_iterations--;
|
||||
}
|
||||
}
|
||||
#else
|
||||
static void wma_wait_tx_complete(tp_wma_handle wma,
|
||||
uint32_t session_id)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
* wma_delete_bss() - process delete bss request from upper layer
|
||||
* @wma: wma handle
|
||||
|
@@ -2982,9 +2982,11 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
|
||||
goto err_scn_context;
|
||||
}
|
||||
|
||||
for (i = 0; i < wma_handle->max_bssid; ++i)
|
||||
for (i = 0; i < wma_handle->max_bssid; ++i) {
|
||||
wma_vdev_init(&wma_handle->interfaces[i]);
|
||||
|
||||
wma_handle->interfaces[i].delay_before_vdev_stop =
|
||||
cds_cfg->delay_before_vdev_stop;
|
||||
}
|
||||
/* Register the debug print event handler */
|
||||
wmi_unified_register_event_handler(wma_handle->wmi_handle,
|
||||
wmi_debug_print_event_id,
|
||||
|
Reference in New Issue
Block a user