qcacld-3.0: Do not allocate mgmt descriptors

Do not allocate txrx descriptors for management
if management over WMI is enabled.

Change-Id: Iafb231bebe83b658940119ed13a41d64a10d4eb0
CRs-Fixed: 955450
This commit is contained in:
Nirav Shah 2015-12-23 20:36:11 +05:30 • committed by Akash Patel
commit 2ae038d42e
3 changed files with 12 additions and 4 deletions

View file

@ -313,9 +313,11 @@ void ol_tx_set_desc_global_pool_size(uint32_t num_msdu_desc)
cdf_print("%s: pdev is NULL\n", __func__);
return;
}
pdev->num_msdu_desc = num_msdu_desc + TX_FLOW_MGMT_POOL_SIZE;
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR, "Global pool size: %d = %d + %d\n",
pdev->num_msdu_desc, num_msdu_desc, TX_FLOW_MGMT_POOL_SIZE);
pdev->num_msdu_desc = num_msdu_desc;
if (!ol_tx_get_is_mgmt_over_wmi_enabled())
pdev->num_msdu_desc += TX_FLOW_MGMT_POOL_SIZE;
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR, "Global pool size: %d\n",
pdev->num_msdu_desc);
return;
}

View file

@ -430,6 +430,9 @@ int ol_tx_delete_flow_pool(struct ol_tx_flow_pool_t *pool)
cdf_spin_unlock_bh(&pool->flow_pool_lock);
pdev->tx_desc.num_invalid_bin++;
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
"%s: invalid pool created %d\n",
__func__, pdev->tx_desc.num_invalid_bin);
if (pdev->tx_desc.num_invalid_bin > MAX_INVALID_BIN)
ASSERT(0);
@ -477,6 +480,9 @@ int ol_tx_free_invalid_flow_pool(struct ol_tx_flow_pool_t *pool)
cdf_spin_unlock_bh(&pool->flow_pool_lock);
pdev->tx_desc.num_invalid_bin--;
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
"%s: invalid pool deleted %d\n",
__func__, pdev->tx_desc.num_invalid_bin);
return ol_tx_delete_flow_pool(pool);
}

View file

@ -3771,7 +3771,6 @@ void wma_rx_service_ready_event(WMA_HANDLE handle, void *cmd_param_info)
wma_handle->num_rf_chains = ev->num_rf_chains;
wma_handle->target_fw_version = ev->fw_build_vers;
ol_tx_set_desc_global_pool_size(ev->num_msdu_desc);
wma_handle->new_hw_mode_index = ev->default_dbs_hw_mode_index;
WMA_LOGD("%s: Firmware default hw mode index : %d",
@ -3805,6 +3804,7 @@ void wma_rx_service_ready_event(WMA_HANDLE handle, void *cmd_param_info)
ol_tx_set_is_mgmt_over_wmi_enabled(
WMI_SERVICE_IS_ENABLED(wma_handle->wmi_service_bitmap,
WMI_SERVICE_MGMT_TX_WMI));
ol_tx_set_desc_global_pool_size(ev->num_msdu_desc);
/* SWBA event handler for beacon transmission */
status = wmi_unified_register_event_handler(wma_handle->wmi_handle,