소스 검색

qcacld-3.0: Change to set 64 bits quota bytes

IPA uC quota bytes is 64 bits long, however wma_cli_set_command
passes only 32 bit value, so only LSB is passed to FW.
To set full 64 bits to FW, pass MSB of the quota value using second
value parameter of wma_cli_set2_command.

Change-Id: Iace8c4a856fcadaa1492b843e24901ab63657550
CRs-fixed: 2007400
Yun Park 8 년 전
부모
커밋
327e7816d1
2개의 변경된 파일8개의 추가작업 그리고 3개의 파일을 삭제
  1. 4 2
      core/hdd/src/wlan_hdd_ipa.c
  2. 4 1
      core/wma/src/wma_main.c

+ 4 - 2
core/hdd/src/wlan_hdd_ipa.c

@@ -1881,10 +1881,12 @@ void hdd_ipa_uc_set_quota(hdd_adapter_t *adapter, uint8_t set_quota,
 	if ((HDD_IPA_UC_NUM_WDI_PIPE == hdd_ipa->activated_fw_pipe) &&
 		(false == hdd_ipa->resource_loading)) {
 		qdf_mutex_release(&hdd_ipa->ipa_lock);
-		wma_cli_set_command(
+		wma_cli_set2_command(
 			(int)adapter->sessionId,
 			(int)WMA_VDEV_TXRX_SET_IPA_UC_QUOTA_CMDID,
-			(set_quota ? quota_bytes : 0), VDEV_CMD);
+			(set_quota ? quota_bytes&0xffffffff : 0),
+			(set_quota ? quota_bytes>>32 : 0),
+			VDEV_CMD);
 	} else {
 		qdf_mutex_release(&hdd_ipa->ipa_lock);
 	}

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

@@ -820,7 +820,10 @@ static int32_t wma_set_priv_cfg(tp_wma_handle wma_handle,
 	{
 		void *soc = cds_get_context(QDF_MODULE_ID_SOC);
 		struct cdp_pdev *pdev;
-		uint64_t quota_bytes = privcmd->param_value;
+		uint64_t quota_bytes = privcmd->param_sec_value;
+
+		quota_bytes <<= 32;
+		quota_bytes |= privcmd->param_value;
 
 		WMA_LOGE("%s: quota_bytes=%llu",
 			 "WMA_VDEV_TXRX_SET_IPA_UC_QUOTA_CMDID",