소스 검색

qcacld-3.0: Refine gFwDebugModuleLoglevel configurations

Refine gFwDebugModuleLoglevel configurations based on converged cfg
component. Remove related legacy codes.

Change-Id: I5a1099872163bdcf0fc2e08478c4b608529db736
CRs-Fixed: 2355599
lifeng 6 년 전
부모
커밋
e47878b426

+ 4 - 0
fw_offload/core/inc/wlan_fw_offload_main.h

@@ -127,6 +127,8 @@ struct wlan_fwol_ie_whitelist {
  * @get_rts_profile: Set the RTS profile
  * @enable_fw_log_level: Set the FW log level
  * @enable_fw_log_type: Set the FW log type
+ * @enable_fw_module_log_level: enable fw module log level
+ * @enable_fw_module_log_level_num: enablefw module log level num
  * @is_rate_limit_enabled: Enable/disable RA rate limited
  * @tsf_gpio_pin: TSF GPIO Pin config
  * @enable_dhcp_server_offload: DHCP Offload is enabled or not
@@ -150,6 +152,8 @@ struct wlan_fwol_cfg {
 	uint16_t get_rts_profile;
 	uint16_t enable_fw_log_level;
 	uint16_t enable_fw_log_type;
+	uint8_t enable_fw_module_log_level[FW_MODULE_LOG_LEVEL_STRING_LENGTH];
+	uint8_t enable_fw_module_log_level_num;
 #ifdef FEATURE_WLAN_RA_FILTERING
 	bool is_rate_limit_enabled;
 #endif

+ 7 - 0
fw_offload/core/src/wlan_fw_offload_main.c

@@ -267,6 +267,7 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	struct wlan_fwol_psoc_obj *fwol_obj;
 	struct wlan_fwol_cfg *fwol_cfg;
+	qdf_size_t enable_fw_module_log_level_num;
 
 	fwol_obj = fwol_get_psoc_obj(psoc);
 	if (!fwol_obj) {
@@ -296,6 +297,12 @@ QDF_STATUS fwol_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	fwol_cfg->enable_fw_log_level =
 				cfg_get(psoc, CFG_ENABLE_FW_DEBUG_LOG_LEVEL);
 	fwol_cfg->enable_fw_log_type = cfg_get(psoc, CFG_ENABLE_FW_LOG_TYPE);
+	qdf_uint8_array_parse(cfg_get(psoc, CFG_ENABLE_FW_MODULE_LOG_LEVEL),
+			      fwol_cfg->enable_fw_module_log_level,
+			      FW_MODULE_LOG_LEVEL_STRING_LENGTH,
+			      &enable_fw_module_log_level_num);
+	fwol_cfg->enable_fw_module_log_level_num =
+				(uint8_t)enable_fw_module_log_level_num;
 	ucfg_fwol_fetch_ra_filter(psoc, fwol_cfg);
 	ucfg_fwol_fetch_tsf_gpio_pin(psoc, fwol_cfg);
 	ucfg_fwol_fetch_dhcp_server_settings(psoc, fwol_cfg);

+ 42 - 0
fw_offload/dispatcher/inc/cfg_fwol_generic.h

@@ -348,6 +348,47 @@
 		CFG_VALUE_OR_DEFAULT, \
 		"Default value to be given to the net link cnss_diag service")
 
+/*
+ * <ini>
+ * gFwDebugModuleLoglevel - modulized firmware debug log level
+ * @Min: N/A
+ * @Max: N/A
+ * @Default: N/A
+ *
+ * This ini is used to set modulized firmware debug log level.
+ * FW module log level input string format looks like below:
+ * gFwDebugModuleLoglevel="<FW Module ID>,<Log Level>,..."
+ * For example:
+ * gFwDebugModuleLoglevel="1,0,2,1,3,2,4,3,5,4,6,5,7,6"
+ * The above input string means:
+ * For FW module ID 1 enable log level 0
+ * For FW module ID 2 enable log level 1
+ * For FW module ID 3 enable log level 2
+ * For FW module ID 4 enable log level 3
+ * For FW module ID 5 enable log level 4
+ * For FW module ID 6 enable log level 5
+ * For FW module ID 7 enable log level 6
+ * For valid values of log levels check enum DBGLOG_LOG_LVL and
+ * for valid values of module ids check enum WLAN_MODULE_ID.
+ *
+ * Related: None
+ *
+ * Supported Feature: Debugging
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+
+#define FW_MODULE_LOG_LEVEL_STRING_LENGTH  (512)
+#define CFG_ENABLE_FW_MODULE_LOG_LEVEL CFG_INI_STRING( \
+	"gFwDebugModuleLoglevel", \
+	0, \
+	FW_MODULE_LOG_LEVEL_STRING_LENGTH, \
+	"2,1,3,1,5,1,9,1,13,1,14,1,18,1,19,1,26,1,28,1,29,1,31,1,36,1,38,1,"\
+	"46,1,47,1,50,1,52,1,53,1,56,1,60,1,61,1,4,1", \
+	"Set modulized firmware debug log level")
+
 #ifdef FEATURE_WLAN_RA_FILTERING
 /* <ini>
  * gRAFilterEnable
@@ -456,6 +497,7 @@
 	CFG(CFG_ENABLE_FW_RTS_PROFILE) \
 	CFG(CFG_ENABLE_FW_DEBUG_LOG_LEVEL) \
 	CFG(CFG_ENABLE_FW_LOG_TYPE) \
+	CFG(CFG_ENABLE_FW_MODULE_LOG_LEVEL) \
 	CFG(CFG_RA_FILTER_ENABLE) \
 	CFG(CFG_SET_TSF_GPIO_PIN)
 

+ 15 - 0
fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h

@@ -236,6 +236,21 @@ QDF_STATUS ucfg_fwol_get_enable_fw_log_level(struct wlan_objmgr_psoc *psoc,
  */
 QDF_STATUS ucfg_fwol_get_enable_fw_log_type(struct wlan_objmgr_psoc *psoc,
 					    uint16_t *enable_fw_log_type);
+/**
+ * ucfg_fwol_get_enable_fw_module_log_level() - Assigns
+ * enable_fw_module_log_level string
+ * @psoc: pointer to the psoc object
+ * @enable_fw_module_log_level:
+ * pointer to enable_fw_module_log_level array
+ * @enable_fw_module_log_level_num:
+ * pointer to enable_fw_module_log_leve array element num
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS ucfg_fwol_get_enable_fw_module_log_level(
+				struct wlan_objmgr_psoc *psoc,
+				uint8_t **enable_fw_module_log_level,
+				uint8_t *enable_fw_module_log_level_num);
 
 #ifdef FEATURE_WLAN_RA_FILTERING
 /**

+ 19 - 0
fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c

@@ -428,6 +428,25 @@ QDF_STATUS ucfg_fwol_get_enable_fw_log_type(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS ucfg_fwol_get_enable_fw_module_log_level(
+				struct wlan_objmgr_psoc *psoc,
+				uint8_t **enable_fw_module_log_level,
+				uint8_t *enable_fw_module_log_level_num)
+{
+	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;
+	}
+
+	*enable_fw_module_log_level = fwol_obj->cfg.enable_fw_module_log_level;
+	*enable_fw_module_log_level_num =
+				fwol_obj->cfg.enable_fw_module_log_level_num;
+	return QDF_STATUS_SUCCESS;
+}
+
 #ifdef FEATURE_WLAN_RA_FILTERING
 QDF_STATUS ucfg_fwol_set_is_rate_limit_enabled(struct wlan_objmgr_psoc *psoc,
 					       bool is_rate_limit_enabled)