Browse Source

qcacld-3.0: Relocate thermal info cfg items

Relocate thermal info config items to FW offload component.

Change-Id: If03507a44041b53aa81837f687914931e8a05ec8
CRs-Fixed: 2316595
Dundi Raviteja 6 years ago
parent
commit
47ac70974a

+ 24 - 0
components/fw_offload/core/inc/wlan_fw_offload_main.h

@@ -61,12 +61,36 @@ struct wlan_fwol_coex_config {
 	int16_t bt_interference_high_ul;
 };
 
+/*
+ * struct wlan_fwol_thermal_temp - Thermal temperature config items
+ * thermal_temp_min_level0: Thermal temperature minimum level 0
+ * thermal_temp_max_level0: Thermal temperature maximum level 0
+ * thermal_temp_min_level1: Thermal temperature minimum level 1
+ * thermal_temp_max_level1: Thermal temperature maximum level 1
+ * thermal_temp_min_level2: Thermal temperature minimum level 2
+ * thermal_temp_max_level2: Thermal temperature maximum level 2
+ * thermal_temp_min_level3: Thermal temperature minimum level 3
+ * thermal_temp_max_level3: Thermal temperature maximum level 3
+ */
+struct wlan_fwol_thermal_temp {
+	uint16_t thermal_temp_min_level0;
+	uint16_t thermal_temp_max_level0;
+	uint16_t thermal_temp_min_level1;
+	uint16_t thermal_temp_max_level1;
+	uint16_t thermal_temp_min_level2;
+	uint16_t thermal_temp_max_level2;
+	uint16_t thermal_temp_min_level3;
+	uint16_t thermal_temp_max_level3;
+};
+
 /**
  * struct wlan_fwol_cfg - fwol config items
  * coex_config: coex config items
+ * thermal_temp_cfg: Thermal temperature related config items
  */
 struct wlan_fwol_cfg {
 	struct wlan_fwol_coex_config coex_config;
+	struct wlan_fwol_thermal_temp thermal_temp_cfg;
 };
 
 /**

+ 23 - 0
components/fw_offload/core/src/wlan_fw_offload_main.c

@@ -54,6 +54,28 @@ fwol_update_coex_config_in_cfg(struct wlan_objmgr_psoc *psoc,
 				cfg_get(psoc, CFG_BT_INTERFERENCE_HIGH_UL);
 }
 
+static void
+fwol_update_thermal_temp_in_cfg(struct wlan_objmgr_psoc *psoc,
+				struct wlan_fwol_thermal_temp *thermal_temp)
+{
+	thermal_temp->thermal_temp_min_level0 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MIN_LEVEL0);
+	thermal_temp->thermal_temp_max_level0 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MAX_LEVEL0);
+	thermal_temp->thermal_temp_min_level1 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MIN_LEVEL1);
+	thermal_temp->thermal_temp_max_level1 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MAX_LEVEL1);
+	thermal_temp->thermal_temp_min_level2 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MIN_LEVEL2);
+	thermal_temp->thermal_temp_max_level2 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MAX_LEVEL2);
+	thermal_temp->thermal_temp_min_level3 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MIN_LEVEL3);
+	thermal_temp->thermal_temp_max_level3 =
+				cfg_get(psoc, CFG_THERMAL_TEMP_MAX_LEVEL3);
+}
+
 QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 {
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
@@ -69,6 +91,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	fwol_cfg = &fwol_obj->cfg;
 
 	fwol_update_coex_config_in_cfg(psoc, &fwol_cfg->coex_config);
+	fwol_update_thermal_temp_in_cfg(psoc, &fwol_cfg->thermal_temp_cfg);
 
 	return status;
 }

+ 3 - 1
components/fw_offload/dispatcher/inc/cfg_fwol.h

@@ -24,9 +24,11 @@
 #include "qdf_types.h"
 
 #include "cfg_coex.h"
+#include "cfg_thermal_temp.h"
 
 #define CFG_FWOL_ALL \
-	CFG_COEX_ALL
+	CFG_COEX_ALL \
+	CFG_THERMAL_TEMP_ALL
 
 #endif /* __CFG_FWOL_H */
 

+ 101 - 0
components/fw_offload/dispatcher/inc/cfg_thermal_temp.h

@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2012-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
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ * DOC: This file contains centralized definitions of converged configuration.
+ */
+
+#ifndef __CFG_THERMAL_TEMP_H
+#define __CFG_THERMAL_TEMP_H
+
+#define CFG_THERMAL_TEMP_MIN_LEVEL0 CFG_INI_UINT( \
+			"gThermalTempMinLevel0", \
+			0, \
+			1000, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Min Level0")
+
+#define CFG_THERMAL_TEMP_MAX_LEVEL0 CFG_INI_UINT( \
+			"gThermalTempMaxLevel0", \
+			0, \
+			1000, \
+			90, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Max Level0")
+
+#define CFG_THERMAL_TEMP_MIN_LEVEL1 CFG_INI_UINT( \
+			"gThermalTempMinLevel1", \
+			0, \
+			1000, \
+			70, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Min Level1")
+
+#define CFG_THERMAL_TEMP_MAX_LEVEL1 CFG_INI_UINT( \
+			"gThermalTempMaxLevel1", \
+			0, \
+			1000, \
+			110, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Max Level1")
+
+#define CFG_THERMAL_TEMP_MIN_LEVEL2 CFG_INI_UINT( \
+			"gThermalTempMinLevel2", \
+			0, \
+			1000, \
+			90, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Min Level2")
+
+#define CFG_THERMAL_TEMP_MAX_LEVEL2 CFG_INI_UINT( \
+			"gThermalTempMaxLevel2", \
+			0, \
+			1000, \
+			125, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Max Level2")
+
+#define CFG_THERMAL_TEMP_MIN_LEVEL3 CFG_INI_UINT( \
+			"gThermalTempMinLevel3", \
+			0, \
+			1000, \
+			110, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Min Level3")
+
+#define CFG_THERMAL_TEMP_MAX_LEVEL3 CFG_INI_UINT( \
+			"gThermalTempMaxLevel3", \
+			0, \
+			1000, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Thermal Temp Max Level3")
+
+#define CFG_THERMAL_TEMP_ALL \
+	CFG(CFG_THERMAL_TEMP_MIN_LEVEL0) \
+	CFG(CFG_THERMAL_TEMP_MAX_LEVEL0) \
+	CFG(CFG_THERMAL_TEMP_MIN_LEVEL1) \
+	CFG(CFG_THERMAL_TEMP_MAX_LEVEL1) \
+	CFG(CFG_THERMAL_TEMP_MIN_LEVEL2) \
+	CFG(CFG_THERMAL_TEMP_MAX_LEVEL2) \
+	CFG(CFG_THERMAL_TEMP_MIN_LEVEL3) \
+	CFG(CFG_THERMAL_TEMP_MAX_LEVEL3) \
+
+#endif
+

+ 12 - 0
components/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h

@@ -25,6 +25,7 @@
 #include <wlan_objmgr_psoc_obj.h>
 #include <wlan_objmgr_global_obj.h>
 #include <wlan_cmn.h>
+#include "wlan_fw_offload_main.h"
 
 #include "wlan_fw_offload_main.h"
 
@@ -77,4 +78,15 @@ QDF_STATUS
 ucfg_fwol_get_coex_config_params(struct wlan_objmgr_psoc *psoc,
 				 struct wlan_fwol_coex_config *coex_config);
 
+/**
+ * ucfg_fwol_get_thermal_temp() - Get thermal temperature config params
+ * @psoc: Pointer to psoc object
+ * @thermal_temp: Pointer to struct wlan_fwol_thermal_temp
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
+			   struct wlan_fwol_thermal_temp *thermal_temp);
+
 #endif /* _WLAN_FWOL_UCFG_API_H_ */

+ 17 - 0
components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c

@@ -165,3 +165,20 @@ ucfg_fwol_get_coex_config_params(struct wlan_objmgr_psoc *psoc,
 
 	return QDF_STATUS_SUCCESS;
 }
+
+QDF_STATUS
+ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
+			   struct wlan_fwol_thermal_temp *thermal_info)
+{
+	struct wlan_fwol_psoc_obj *fwol_obj;
+
+	fwol_obj = fwol_get_psoc_obj(psoc);
+	if (!fwol_obj) {
+		fwol_err("Failed to get fwol obj");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	*thermal_info = fwol_obj->cfg.thermal_temp_cfg;
+
+	return QDF_STATUS_SUCCESS;
+}

+ 0 - 48
core/hdd/inc/wlan_hdd_cfg.h

@@ -5081,46 +5081,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX     (100)
 #define CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT (94)
 
-#define CFG_THERMAL_TEMP_MIN_LEVEL0_NAME      "gThermalTempMinLevel0"
-#define CFG_THERMAL_TEMP_MIN_LEVEL0_MIN       (0)
-#define CFG_THERMAL_TEMP_MIN_LEVEL0_MAX       (1000)
-#define CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT   (0)
-
-#define CFG_THERMAL_TEMP_MAX_LEVEL0_NAME      "gThermalTempMaxLevel0"
-#define CFG_THERMAL_TEMP_MAX_LEVEL0_MIN       (0)
-#define CFG_THERMAL_TEMP_MAX_LEVEL0_MAX       (1000)
-#define CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT   (90)
-
-#define CFG_THERMAL_TEMP_MIN_LEVEL1_NAME      "gThermalTempMinLevel1"
-#define CFG_THERMAL_TEMP_MIN_LEVEL1_MIN       (0)
-#define CFG_THERMAL_TEMP_MIN_LEVEL1_MAX       (1000)
-#define CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT   (70)
-
-#define CFG_THERMAL_TEMP_MAX_LEVEL1_NAME      "gThermalTempMaxLevel1"
-#define CFG_THERMAL_TEMP_MAX_LEVEL1_MIN       (0)
-#define CFG_THERMAL_TEMP_MAX_LEVEL1_MAX       (1000)
-#define CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT   (110)
-
-#define CFG_THERMAL_TEMP_MIN_LEVEL2_NAME      "gThermalTempMinLevel2"
-#define CFG_THERMAL_TEMP_MIN_LEVEL2_MIN       (0)
-#define CFG_THERMAL_TEMP_MIN_LEVEL2_MAX       (1000)
-#define CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT   (90)
-
-#define CFG_THERMAL_TEMP_MAX_LEVEL2_NAME      "gThermalTempMaxLevel2"
-#define CFG_THERMAL_TEMP_MAX_LEVEL2_MIN       (0)
-#define CFG_THERMAL_TEMP_MAX_LEVEL2_MAX       (1000)
-#define CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT   (125)
-
-#define CFG_THERMAL_TEMP_MIN_LEVEL3_NAME      "gThermalTempMinLevel3"
-#define CFG_THERMAL_TEMP_MIN_LEVEL3_MIN       (0)
-#define CFG_THERMAL_TEMP_MIN_LEVEL3_MAX       (1000)
-#define CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT   (110)
-
-#define CFG_THERMAL_TEMP_MAX_LEVEL3_NAME      "gThermalTempMaxLevel3"
-#define CFG_THERMAL_TEMP_MAX_LEVEL3_MIN       (0)
-#define CFG_THERMAL_TEMP_MAX_LEVEL3_MAX       (1000)
-#define CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT   (0)
-
 /*
  * Enable/Disable Modulated DTIM feature
  * Default: Disable
@@ -11080,14 +11040,6 @@ struct hdd_config {
 	uint8_t wowEnable;
 	uint8_t disableDFSChSwitch;
 	uint8_t enableDFSMasterCap;
-	uint16_t thermalTempMinLevel0;
-	uint16_t thermalTempMaxLevel0;
-	uint16_t thermalTempMinLevel1;
-	uint16_t thermalTempMaxLevel1;
-	uint16_t thermalTempMinLevel2;
-	uint16_t thermalTempMaxLevel2;
-	uint16_t thermalTempMinLevel3;
-	uint16_t thermalTempMaxLevel3;
 	uint32_t TxPower2g;
 	uint32_t TxPower5g;
 	uint32_t gEnableDebugLog;

+ 0 - 56
core/hdd/src/wlan_hdd_cfg.c

@@ -2297,62 +2297,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
 		     CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
 
-	REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMinLevel0,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
-		     CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMaxLevel0,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
-		     CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMinLevel1,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
-		     CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMaxLevel1,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
-		     CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMinLevel2,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
-		     CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMaxLevel2,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
-		     CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMinLevel3,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
-		     CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
-		     CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
-
-	REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, thermalTempMaxLevel3,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
-		     CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
-		     CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
-
 	REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, TxPower2g,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,

+ 13 - 8
core/hdd/src/wlan_hdd_main.c

@@ -9756,6 +9756,7 @@ static int hdd_init_thermal_info(struct hdd_context *hdd_ctx)
 	tSmeThermalParams thermal_param;
 	QDF_STATUS status;
 	mac_handle_t mac_handle;
+	struct wlan_fwol_thermal_temp thermal_temp = {0};
 
 	thermal_param.smeThermalMgmtEnabled =
 		hdd_ctx->config->thermalMitigationEnable;
@@ -9770,22 +9771,26 @@ static int hdd_init_thermal_info(struct hdd_context *hdd_ctx)
 	thermal_param.sme_throttle_duty_cycle_tbl[3] =
 		hdd_ctx->config->throttle_dutycycle_level3;
 
+	status = ucfg_fwol_get_thermal_temp(hdd_ctx->hdd_psoc, &thermal_temp);
+	if (QDF_IS_STATUS_ERROR(status))
+		return qdf_status_to_os_return(status);
+
 	thermal_param.smeThermalLevels[0].smeMinTempThreshold =
-		hdd_ctx->config->thermalTempMinLevel0;
+					thermal_temp.thermal_temp_min_level0;
 	thermal_param.smeThermalLevels[0].smeMaxTempThreshold =
-		hdd_ctx->config->thermalTempMaxLevel0;
+					thermal_temp.thermal_temp_max_level0;
 	thermal_param.smeThermalLevels[1].smeMinTempThreshold =
-		hdd_ctx->config->thermalTempMinLevel1;
+					thermal_temp.thermal_temp_min_level1;
 	thermal_param.smeThermalLevels[1].smeMaxTempThreshold =
-		hdd_ctx->config->thermalTempMaxLevel1;
+					thermal_temp.thermal_temp_max_level1;
 	thermal_param.smeThermalLevels[2].smeMinTempThreshold =
-		hdd_ctx->config->thermalTempMinLevel2;
+					thermal_temp.thermal_temp_min_level2;
 	thermal_param.smeThermalLevels[2].smeMaxTempThreshold =
-		hdd_ctx->config->thermalTempMaxLevel2;
+					thermal_temp.thermal_temp_max_level2;
 	thermal_param.smeThermalLevels[3].smeMinTempThreshold =
-		hdd_ctx->config->thermalTempMinLevel3;
+					thermal_temp.thermal_temp_min_level3;
 	thermal_param.smeThermalLevels[3].smeMaxTempThreshold =
-		hdd_ctx->config->thermalTempMaxLevel3;
+					thermal_temp.thermal_temp_max_level3;
 
 	mac_handle = hdd_ctx->mac_handle;
 	status = sme_init_thermal_info(mac_handle, thermal_param);