diff options
| author | c_manjee <c_manjee@qti.qualcomm.com> | 2016-07-26 11:11:37 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-07-26 14:41:14 +0530 |
| commit | 401486f74f693ecb198b5c8abe8b69ed586c2ec1 (patch) | |
| tree | 31aecdd4c624fb46b07459bdae3c6ccfb50d4dba | |
| parent | 5f8abb08fb36994ab85b223fffb39f5b7762c8df (diff) | |
qcacld-2.0: Add support for sifs burst duration ini
Add code for implementing sifs burst duration ini to be sent to be FW
as part of WMI_PDEV_PARAM_BURST_DUR command.
Change-Id: I96ccda760045ecd54592b649116f3e7fe4a4f31b
CRs-Fixed: 1028623
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_cfg.h | 12 | ||||
| -rw-r--r-- | CORE/HDD/inc/wlan_hdd_main.h | 4 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg.c | 7 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 11 |
4 files changed, 34 insertions, 0 deletions
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index 194cd253b406..e09c4977833b 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -3981,6 +3981,16 @@ enum dot11p_mode { #define CFG_ACTIVE_MODE_OFFLOAD_DEFAULT (0) +/* + * This parameter will control SIFS burst duration in FW from 0 to 12 ms. + * Default value is set to 8ms. + */ + +#define CFG_SIFS_BURST_DURATION_NAME "g_sifs_burst_duration" +#define CFG_SIFS_BURST_DURATION_MIN (0) +#define CFG_SIFS_BURST_DURATION_MAX (12) +#define CFG_SIFS_BURST_DURATION_DEFAULT (8) + /*--------------------------------------------------------------------------- Type declarations -------------------------------------------------------------------------*/ @@ -4762,6 +4772,8 @@ struct hdd_config { bool sap_force_11n_for_11ac; uint8_t sap_max_inactivity_override; bool active_mode_offload; + /* parameter for indicating sifs burst duration to fw */ + uint8_t sifs_burst_duration; }; typedef struct hdd_config hdd_config_t; diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 74e5c4822131..fa492163fce5 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -243,6 +243,10 @@ #define HDD_MIN_TX_POWER (-100) // minimum tx power #define HDD_MAX_TX_POWER (+100) // maximum tx power +/* FW expects burst duration in 1020*ms */ +#define SIFS_BURST_DUR_MULTIPLIER 1020 +#define SIFS_BURST_DUR_MAX 12240 + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)) #ifdef CONFIG_CNSS #define cfg80211_vendor_cmd_reply(skb) vos_vendor_cmd_reply(skb) diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index b7562ad986d6..7cf165cf4bb5 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -4674,6 +4674,13 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_ACTIVE_MODE_OFFLOAD_DEFAULT, CFG_ACTIVE_MODE_OFFLOAD_MIN, CFG_ACTIVE_MODE_OFFLOAD_MAX), + + REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer, + hdd_config_t, sifs_burst_duration, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_SIFS_BURST_DURATION_DEFAULT, + CFG_SIFS_BURST_DURATION_MIN, + CFG_SIFS_BURST_DURATION_MAX), }; diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index cfab6ccb2d81..c180e64c7f88 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -14546,6 +14546,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) #ifdef QCA_ARP_SPOOFING_WAR adf_os_device_t adf_ctx; #endif + int set_value; ENTER(); @@ -15519,6 +15520,16 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) if (eHAL_STATUS_SUCCESS != hal_status) hddLog(LOGE, FL("Failed to disable Chan Avoidance Indcation")); } + + if (pHddCtx->cfg_ini->sifs_burst_duration) { + set_value = (SIFS_BURST_DUR_MULTIPLIER) * + pHddCtx->cfg_ini->sifs_burst_duration; + + if ((set_value > 0) && (set_value <= SIFS_BURST_DUR_MAX)) + process_wma_set_command(0, (int)WMI_PDEV_PARAM_BURST_DUR, + set_value, PDEV_CMD); + } + wlan_comp.status = 0; complete(&wlan_comp.wlan_start_comp); goto success; |
