summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJi-Huang <huangl@qca.qualcomm.com>2014-08-06 14:21:44 +0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-08-13 11:31:07 -0700
commit8d5b545d1e4ea5b09131b574da5d7e6017bff94f (patch)
tree232fa1cdbd2226cecc78e94bfbaf535b5d9f64a4
parent59830a6c65079664aacf2820fc4eec28623ac1e6 (diff)
qcacld-new: Enable/disable FW self-recovery for Rome USB
FW self-recovery for Rome USB can be enabled/disabled in INI. If it's enabled, driver doesn't trigger kernel panic after firmware crash. Change-Id: Ia28bc567d1d84f9f800927f0498d2d4bf5edba33 CRs-Fixed: 701176
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h9
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c7
-rw-r--r--CORE/SERVICES/COMMON/ol_if_athvar.h2
-rw-r--r--CORE/VOSS/src/vos_api.c1
-rw-r--r--firmware_bin/WCNSS_qcom_cfg.usb.ini5
5 files changed, 24 insertions, 0 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index bfb2cdd87e44..6e382efb63da 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2333,6 +2333,14 @@ This feature requires the dependent cfg.ini "gRoamPrefer5GHz" set to 1 */
#define CFG_ENABLE_FW_LOG_ENABLE ( 1 )
#define CFG_ENABLE_FW_LOG_DEFAULT ( CFG_ENABLE_FW_LOG_DISABLE )
+/*
+ * Enable/Disable SSR for USB
+ */
+#define CFG_ENABLE_FW_SELF_RECOVERY_NAME "gEnableFwSelfRecovery"
+#define CFG_ENABLE_FW_SELF_RECOVERY_DISABLE ( 0 )
+#define CFG_ENABLE_FW_SELF_RECOVERY_ENABLE ( 1 )
+#define CFG_ENABLE_FW_SELF_RECOVERY_DEFAULT ( CFG_ENABLE_FW_SELF_RECOVERY_DISABLE )
+
#ifdef WLAN_FEATURE_11AC
//Macro to handle maximum receive AMPDU size configuration
#define CFG_VHT_AMPDU_LEN_EXPONENT_NAME "gVhtAmpduLenExponent"
@@ -3182,6 +3190,7 @@ typedef struct
v_BOOL_t enablePowersaveOffload;
v_BOOL_t enablefwprint;
v_BOOL_t enablefwlog;
+ v_BOOL_t enableFwSelfRecovery;
v_BOOL_t fP2pListenOffload;
#ifdef WLAN_FEATURE_11AC
v_U8_t fVhtAmpduLenExponent;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 6b0bb8577585..4ee048698860 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -3188,6 +3188,13 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_ENABLE_FW_LOG_DISABLE,
CFG_ENABLE_FW_LOG_ENABLE),
+ REG_VARIABLE( CFG_ENABLE_FW_SELF_RECOVERY_NAME, WLAN_PARAM_Integer,
+ hdd_config_t, enableFwSelfRecovery,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_FW_SELF_RECOVERY_DEFAULT,
+ CFG_ENABLE_FW_SELF_RECOVERY_DISABLE,
+ CFG_ENABLE_FW_SELF_RECOVERY_ENABLE),
+
#ifdef IPA_OFFLOAD
REG_VARIABLE( CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
hdd_config_t, IpaConfig,
diff --git a/CORE/SERVICES/COMMON/ol_if_athvar.h b/CORE/SERVICES/COMMON/ol_if_athvar.h
index 110f4a384fc5..55f1c0acaff0 100644
--- a/CORE/SERVICES/COMMON/ol_if_athvar.h
+++ b/CORE/SERVICES/COMMON/ol_if_athvar.h
@@ -200,6 +200,8 @@ struct ol_softc {
#endif
bool enableuartprint; /* enable uart/serial prints from target */
bool enablefwlog; /* enable fwlog */
+ /* enable FW self-recovery for Rome USB */
+ bool enableFwSelfRecovery;
bool enablesinglebinary; /* Use single binary for FW */
HAL_REG_CAPABILITIES hal_reg_capabilities;
struct ol_regdmn *ol_regdmn_handle;
diff --git a/CORE/VOSS/src/vos_api.c b/CORE/VOSS/src/vos_api.c
index 59c558453b2c..ec5a3b875689 100644
--- a/CORE/VOSS/src/vos_api.c
+++ b/CORE/VOSS/src/vos_api.c
@@ -352,6 +352,7 @@ VOS_STATUS vos_open( v_CONTEXT_t *pVosContext, v_SIZE_t hddContextSize )
}
scn->enableuartprint = pHddCtx->cfg_ini->enablefwprint;
scn->enablefwlog = pHddCtx->cfg_ini->enablefwlog;
+ scn->enableFwSelfRecovery = pHddCtx->cfg_ini->enableFwSelfRecovery;
scn->max_no_of_peers = pHddCtx->cfg_ini->maxNumberOfPeers;
#ifdef WLAN_FEATURE_LPSS
scn->enablelpasssupport = pHddCtx->cfg_ini->enablelpasssupport;
diff --git a/firmware_bin/WCNSS_qcom_cfg.usb.ini b/firmware_bin/WCNSS_qcom_cfg.usb.ini
index ae9ae4886728..e14f4c85f559 100644
--- a/firmware_bin/WCNSS_qcom_cfg.usb.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.usb.ini
@@ -507,6 +507,11 @@ gFwDebugModuleLoglevel=0,0
# Enable or Disable Rx thread
# 1=Enable (default), 0=Disable
gEnableRxThread=0
+
+# Enable or Disable FW self-recovery
+# Currently, It's for USB only.
+# 1=Enable, 0=Disable (default)
+gEnableFwSelfRecovery=0
END
# Note: Configuration parser would not read anything past the END marker