Bladeren bron

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
Nirav Shah 9 jaren geleden
bovenliggende
commit
1a934bdc7a
3 gewijzigde bestanden met toevoegingen van 12 en 4 verwijderingen
  1. 5 3
      core/dp/txrx/ol_txrx.c
  2. 6 0
      core/dp/txrx/ol_txrx_flow_control.c
  3. 1 1
      core/wma/src/wma_main.c

+ 5 - 3
core/dp/txrx/ol_txrx.c

@@ -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;
 }
 

+ 6 - 0
core/dp/txrx/ol_txrx_flow_control.c

@@ -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);
 }

+ 1 - 1
core/wma/src/wma_main.c

@@ -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,