qcacld-3.0: ADD MLME INI items of WMM AC_VI
Add the following WMM AC VI ini configs to MLME cfg: 1. CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME 2. CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME 3. CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME 4. CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME 5. CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME 6. CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME 7. CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME Introduce the basic infra APIs related to these configs from mlme Change-Id: I320f49b216659937dc7f708fdbb7849ae415e249 CRs-Fixed: 2327687
This commit is contained in:
@@ -1263,6 +1263,22 @@ static void mlme_init_wmm_in_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
cfg_get(psoc, CFG_QOS_WMM_UAPSD_VO_SRV_INTV);
|
cfg_get(psoc, CFG_QOS_WMM_UAPSD_VO_SRV_INTV);
|
||||||
wmm_params->ac_vo.uapsd_vo_sus_intv =
|
wmm_params->ac_vo.uapsd_vo_sus_intv =
|
||||||
cfg_get(psoc, CFG_QOS_WMM_UAPSD_VO_SUS_INTV);
|
cfg_get(psoc, CFG_QOS_WMM_UAPSD_VO_SUS_INTV);
|
||||||
|
|
||||||
|
wmm_params->ac_vi.dir_ac_vi =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_DIR_AC_VI);
|
||||||
|
wmm_params->ac_vi.nom_msdu_size_ac_vi =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_NOM_MSDU_SIZE_AC_VI);
|
||||||
|
wmm_params->ac_vi.mean_data_rate_ac_vi =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_MEAN_DATA_RATE_AC_VI);
|
||||||
|
wmm_params->ac_vi.min_phy_rate_ac_vi =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_MIN_PHY_RATE_AC_VI);
|
||||||
|
wmm_params->ac_vi.sba_ac_vi =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_SBA_AC_VI);
|
||||||
|
wmm_params->ac_vi.uapsd_vi_srv_intv =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_UAPSD_VI_SRV_INTV);
|
||||||
|
wmm_params->ac_vi.uapsd_vi_sus_intv =
|
||||||
|
cfg_get(psoc, CFG_QOS_WMM_UAPSD_VI_SUS_INTV);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,
|
static void mlme_init_wps_params_cfg(struct wlan_objmgr_psoc *psoc,
|
||||||
|
@@ -179,6 +179,131 @@
|
|||||||
0x2001, \
|
0x2001, \
|
||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"surplus bandwidth allowance for VO")
|
"surplus bandwidth allowance for VO")
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* InfraDirAcVi - Set TSPEC direction for VI
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 3
|
||||||
|
* @Default: 3
|
||||||
|
*
|
||||||
|
* This ini is used to set TSPEC direction for VI
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_QOS_WMM_DIR_AC_VI CFG_INI_UINT( \
|
||||||
|
"InfraDirAcVi", \
|
||||||
|
0, \
|
||||||
|
3, \
|
||||||
|
3, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"TSPEC direction for VI")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* InfraNomMsduSizeAcVi - Set normal MSDU size for VI
|
||||||
|
* @Min: 0x0
|
||||||
|
* @Max: 0xFFFF
|
||||||
|
* @Default: 0x85DC
|
||||||
|
*
|
||||||
|
* This ini is used to set normal MSDU size for VI
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_QOS_WMM_NOM_MSDU_SIZE_AC_VI CFG_INI_UINT( \
|
||||||
|
"InfraNomMsduSizeAcVi", \
|
||||||
|
0x0, \
|
||||||
|
0xFFFF, \
|
||||||
|
0x85DC, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"MSDU size for VI")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* InfraMeanDataRateAcVi - Set mean data rate for VI
|
||||||
|
* @Min: 0x0
|
||||||
|
* @Max: 0xFFFFFFFF
|
||||||
|
* @Default: 0x57E40
|
||||||
|
*
|
||||||
|
* This ini is used to set mean data rate for VI
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_QOS_WMM_MEAN_DATA_RATE_AC_VI CFG_INI_UINT( \
|
||||||
|
"InfraMeanDataRateAcVi", \
|
||||||
|
0x0, \
|
||||||
|
0xFFFFFFFF, \
|
||||||
|
0x57E40, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"data rate for VI")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* iInfraMinPhyRateAcVi - Set min PHY rate for VI
|
||||||
|
* @Min: 0x0
|
||||||
|
* @Max: 0xFFFFFFFF
|
||||||
|
* @Default: 0x5B8D80
|
||||||
|
*
|
||||||
|
* This ini is used to set min PHY rate for VI
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_QOS_WMM_MIN_PHY_RATE_AC_VI CFG_INI_UINT( \
|
||||||
|
"InfraMinPhyRateAcVi", \
|
||||||
|
0x0, \
|
||||||
|
0xFFFFFFFF, \
|
||||||
|
0x5B8D80, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"min PHY rate for VI")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* InfraSbaAcVi - Set surplus bandwidth allowance for VI
|
||||||
|
* @Min: 0x2001
|
||||||
|
* @Max: 0xFFFF
|
||||||
|
* @Default: 0x2001
|
||||||
|
*
|
||||||
|
* This ini is used to set surplus bandwidth allowance for VI
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CFG_QOS_WMM_SBA_AC_VI CFG_INI_UINT( \
|
||||||
|
"InfraSbaAcVi", \
|
||||||
|
0x2001, \
|
||||||
|
0xFFFF, \
|
||||||
|
0x2001, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"surplus bandwidth allowance for VI")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
@@ -230,6 +355,57 @@
|
|||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"Infra uapsd vo sus intv")
|
"Infra uapsd vo sus intv")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* InfraUapsdViSrvIntv - Set Uapsd service interval for video
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 4294967295UL
|
||||||
|
* @Default: 300
|
||||||
|
*
|
||||||
|
* This ini is used to set Uapsd service interval for video.
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define CFG_QOS_WMM_UAPSD_VI_SRV_INTV CFG_INI_UINT( \
|
||||||
|
"InfraUapsdViSrvIntv", \
|
||||||
|
0, \
|
||||||
|
4294967295UL, \
|
||||||
|
300, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Infra uapsd vi srv intv")
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* InfraUapsdViSuspIntv - Set Uapsd suspension interval for video
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 4294967295UL
|
||||||
|
* @Default: 2000
|
||||||
|
*
|
||||||
|
* This ini is used to set Uapsd suspension interval for video
|
||||||
|
*
|
||||||
|
* Related: None.
|
||||||
|
*
|
||||||
|
* Supported Feature: WMM
|
||||||
|
*
|
||||||
|
* Usage: Internal/External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_QOS_WMM_UAPSD_VI_SUS_INTV CFG_INI_UINT( \
|
||||||
|
"InfraUapsdViSuspIntv", \
|
||||||
|
0, \
|
||||||
|
4294967295UL, \
|
||||||
|
2000, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Infra uapsd vi sus intv")
|
||||||
|
|
||||||
#define CFG_WMM_PARAMS_ALL \
|
#define CFG_WMM_PARAMS_ALL \
|
||||||
CFG(CFG_QOS_ENABLED) \
|
CFG(CFG_QOS_ENABLED) \
|
||||||
CFG(CFG_WME_ENABLED) \
|
CFG(CFG_WME_ENABLED) \
|
||||||
@@ -242,6 +418,13 @@
|
|||||||
CFG(CFG_QOS_WMM_MIN_PHY_RATE_AC_VO) \
|
CFG(CFG_QOS_WMM_MIN_PHY_RATE_AC_VO) \
|
||||||
CFG(CFG_QOS_WMM_SBA_AC_VO) \
|
CFG(CFG_QOS_WMM_SBA_AC_VO) \
|
||||||
CFG(CFG_QOS_WMM_UAPSD_VO_SRV_INTV) \
|
CFG(CFG_QOS_WMM_UAPSD_VO_SRV_INTV) \
|
||||||
CFG(CFG_QOS_WMM_UAPSD_VO_SUS_INTV)
|
CFG(CFG_QOS_WMM_UAPSD_VO_SUS_INTV) \
|
||||||
|
CFG(CFG_QOS_WMM_DIR_AC_VI) \
|
||||||
|
CFG(CFG_QOS_WMM_NOM_MSDU_SIZE_AC_VI) \
|
||||||
|
CFG(CFG_QOS_WMM_MEAN_DATA_RATE_AC_VI) \
|
||||||
|
CFG(CFG_QOS_WMM_MIN_PHY_RATE_AC_VI) \
|
||||||
|
CFG(CFG_QOS_WMM_SBA_AC_VI) \
|
||||||
|
CFG(CFG_QOS_WMM_UAPSD_VI_SRV_INTV) \
|
||||||
|
CFG(CFG_QOS_WMM_UAPSD_VI_SUS_INTV)
|
||||||
|
|
||||||
#endif /* __CFG_MLME_FE_WMM_H */
|
#endif /* __CFG_MLME_FE_WMM_H */
|
||||||
|
@@ -638,6 +638,89 @@ QDF_STATUS wlan_mlme_get_fils_enabled_info(struct wlan_objmgr_psoc *psoc,
|
|||||||
QDF_STATUS wlan_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc,
|
||||||
bool value);
|
bool value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_dir_ac_vi() - Get TSPEC direction
|
||||||
|
* for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_dir_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_nom_msdu_size_ac_vi() - Get normal
|
||||||
|
* MSDU size for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_nom_msdu_size_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint16_t *value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_mean_data_rate_ac_vi() - mean data
|
||||||
|
* rate for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_mean_data_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_min_phy_rate_ac_vi() - min PHY
|
||||||
|
* rate for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_min_phy_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_sba_ac_vi() - surplus bandwidth
|
||||||
|
* allowance for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_sba_ac_vi(struct wlan_objmgr_psoc *psoc, uint16_t *value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_uapsd_vi_srv_intv() - Get Uapsd service
|
||||||
|
* interval for video
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: pointer to the value which will be filled for the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_uapsd_vi_srv_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_mlme_get_wmm_uapsd_vi_sus_intv() - Get Uapsd suspension
|
||||||
|
* interval for video
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: pointer to the value which will be filled for the caller
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_uapsd_vi_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
|
* wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
|
||||||
* for VO
|
* for VO
|
||||||
@@ -726,6 +809,7 @@ wlan_mlme_get_wmm_uapsd_vo_srv_intv(struct wlan_objmgr_psoc *psoc,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
wlan_mlme_get_wmm_uapsd_vo_sus_intv(struct wlan_objmgr_psoc *psoc,
|
wlan_mlme_get_wmm_uapsd_vo_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
uint32_t *value);
|
uint32_t *value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_mlme_cfg_get_vht_max_mpdu_len() - gets vht max mpdu length from cfg item
|
* wlan_mlme_cfg_get_vht_max_mpdu_len() - gets vht max mpdu length from cfg item
|
||||||
* @psoc: psoc context
|
* @psoc: psoc context
|
||||||
|
@@ -1018,6 +1018,27 @@ struct wlan_mlme_wmm_ac_vo {
|
|||||||
uint32_t uapsd_vo_sus_intv;
|
uint32_t uapsd_vo_sus_intv;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct wlan_mlme_wmm_ac_vi - Default TSPEC parameters
|
||||||
|
* for AC_VI
|
||||||
|
* @dir_ac_vi: TSPEC direction for VI
|
||||||
|
* @nom_msdu_size_ac_vi: normal MSDU size for VI
|
||||||
|
* @mean_data_rate_ac_vi: mean data rate for VI
|
||||||
|
* @min_phy_rate_ac_vi: min PHY rate for VI
|
||||||
|
* @sba_ac_vi: surplus bandwidth allowance for VI
|
||||||
|
* @uapsd_vo_srv_intv: Uapsd service interval for VI
|
||||||
|
* @uapsd_vo_sus_intv: Uapsd suspension interval for VI
|
||||||
|
*/
|
||||||
|
struct wlan_mlme_wmm_ac_vi {
|
||||||
|
uint8_t dir_ac_vi;
|
||||||
|
uint16_t nom_msdu_size_ac_vi;
|
||||||
|
uint32_t mean_data_rate_ac_vi;
|
||||||
|
uint32_t min_phy_rate_ac_vi;
|
||||||
|
uint16_t sba_ac_vi;
|
||||||
|
uint32_t uapsd_vi_srv_intv;
|
||||||
|
uint32_t uapsd_vi_sus_intv;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct wlan_mlme_wmm_params - WMM CFG Items
|
* struct wlan_mlme_wmm_params - WMM CFG Items
|
||||||
* @qos_enabled: AP is enabled with 11E
|
* @qos_enabled: AP is enabled with 11E
|
||||||
@@ -1025,6 +1046,7 @@ struct wlan_mlme_wmm_ac_vo {
|
|||||||
* @max_sp_length: Maximum SP Length
|
* @max_sp_length: Maximum SP Length
|
||||||
* @wsm_enabled: AP is enabled with WSM
|
* @wsm_enabled: AP is enabled with WSM
|
||||||
* @ac_vo: Default TSPEC parameters for AC_VO
|
* @ac_vo: Default TSPEC parameters for AC_VO
|
||||||
|
* @ac_vi: Default TSPEC parameters for AC_VI
|
||||||
*/
|
*/
|
||||||
struct wlan_mlme_wmm_params {
|
struct wlan_mlme_wmm_params {
|
||||||
bool qos_enabled;
|
bool qos_enabled;
|
||||||
@@ -1033,6 +1055,7 @@ struct wlan_mlme_wmm_params {
|
|||||||
bool wsm_enabled;
|
bool wsm_enabled;
|
||||||
uint32_t edca_profile;
|
uint32_t edca_profile;
|
||||||
struct wlan_mlme_wmm_ac_vo ac_vo;
|
struct wlan_mlme_wmm_ac_vo ac_vo;
|
||||||
|
struct wlan_mlme_wmm_ac_vi ac_vi;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1697,4 +1697,122 @@ ucfg_mlme_set_supported_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
|
ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
|
||||||
qdf_size_t *len);
|
qdf_size_t *len);
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_dir_ac_vi() - Get TSPEC direction
|
||||||
|
* for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_dir_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_dir_ac_vi(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_nom_msdu_size_ac_vi() - Get normal
|
||||||
|
* MSDU size for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_nom_msdu_size_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint16_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_nom_msdu_size_ac_vi(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_mean_data_rate_ac_vi() - mean data
|
||||||
|
* rate for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_mean_data_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_mean_data_rate_ac_vi(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_min_phy_rate_ac_vi() - min PHY
|
||||||
|
* rate for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_min_phy_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_min_phy_rate_ac_vi(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_sba_ac_vi() - surplus bandwidth
|
||||||
|
* allowance for VI
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_sba_ac_vi(struct wlan_objmgr_psoc *psoc, uint16_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_sba_ac_vi(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_uapsd_vi_srv_intv() - Get Uapsd service
|
||||||
|
* interval for video
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: pointer to the value which will be filled for the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_uapsd_vi_srv_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_uapsd_vi_srv_intv(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ucfg_mlme_get_wmm_uapsd_vi_sus_intv() - Get Uapsd suspension
|
||||||
|
* interval for video
|
||||||
|
* @psoc: pointer to psoc object
|
||||||
|
* @value: Value that needs to be set from the caller
|
||||||
|
*
|
||||||
|
* Inline UCFG API to be used by HDD/OSIF callers
|
||||||
|
*
|
||||||
|
* Return: QDF Status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS
|
||||||
|
ucfg_mlme_get_wmm_uapsd_vi_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
return wlan_mlme_get_wmm_uapsd_vi_sus_intv(psoc, value);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* _WLAN_MLME_UCFG_API_H_ */
|
#endif /* _WLAN_MLME_UCFG_API_H_ */
|
||||||
|
@@ -678,6 +678,122 @@ QDF_STATUS wlan_mlme_get_wmm_uapsd_vo_sus_intv(struct wlan_objmgr_psoc *psoc,
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wlan_mlme_get_wmm_dir_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint8_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value = mlme_obj->cfg.wmm_params.ac_vi.dir_ac_vi;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wlan_mlme_get_wmm_nom_msdu_size_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint16_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value =
|
||||||
|
mlme_obj->cfg.wmm_params.ac_vi.nom_msdu_size_ac_vi;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_mean_data_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value = mlme_obj->cfg.wmm_params.ac_vi.mean_data_rate_ac_vi;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_min_phy_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value = mlme_obj->cfg.wmm_params.ac_vi.min_phy_rate_ac_vi;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wlan_mlme_get_wmm_sba_ac_vi(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint16_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value = mlme_obj->cfg.wmm_params.ac_vi.sba_ac_vi;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
wlan_mlme_get_wmm_uapsd_vi_srv_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value = mlme_obj->cfg.wmm_params.ac_vi.uapsd_vi_srv_intv;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wlan_mlme_get_wmm_uapsd_vi_sus_intv(struct wlan_objmgr_psoc *psoc,
|
||||||
|
uint32_t *value)
|
||||||
|
{
|
||||||
|
struct wlan_mlme_psoc_obj *mlme_obj;
|
||||||
|
|
||||||
|
mlme_obj = mlme_get_psoc_obj(psoc);
|
||||||
|
if (!mlme_obj) {
|
||||||
|
mlme_err("Failed to get MLME Obj");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*value = mlme_obj->cfg.wmm_params.ac_vi.uapsd_vi_sus_intv;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
|
||||||
int value)
|
int value)
|
||||||
{
|
{
|
||||||
|
@@ -2741,50 +2741,6 @@ enum station_keepalive_method {
|
|||||||
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX (1)
|
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX (1)
|
||||||
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT (0)
|
#define CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT (0)
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* InfraUapsdViSrvIntv - Set Uapsd service interval for video
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 4294967295UL
|
|
||||||
* @Default: 300
|
|
||||||
*
|
|
||||||
* This ini is used to set Uapsd service interval for video.
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME "InfraUapsdViSrvIntv"
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN (0)
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX (4294967295UL)
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT (300)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* InfraUapsdViSuspIntv - Set Uapsd suspension interval for video
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 4294967295UL
|
|
||||||
* @Default: 2000
|
|
||||||
*
|
|
||||||
* This ini is used to set Uapsd suspension interval for video
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME "InfraUapsdViSuspIntv"
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN (0)
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX (4294967295UL)
|
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT (2000)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* InfraUapsdBeSrvIntv - Set Uapsd service interval for BE
|
* InfraUapsdBeSrvIntv - Set Uapsd service interval for BE
|
||||||
@@ -2873,117 +2829,6 @@ enum station_keepalive_method {
|
|||||||
#define CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX (4294967295UL)
|
#define CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX (4294967295UL)
|
||||||
#define CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT (2000)
|
#define CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT (2000)
|
||||||
|
|
||||||
/* default TSPEC parameters for AC_VI */
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* InfraDirAcVi - Set TSPEC direction for VI
|
|
||||||
* @Min: 0
|
|
||||||
* @Max: 3
|
|
||||||
* @Default: 3
|
|
||||||
*
|
|
||||||
* This ini is used to set TSPEC direction for VI
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME "InfraDirAcVi"
|
|
||||||
#define CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN (0)
|
|
||||||
#define CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX (3)
|
|
||||||
#define CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT (3) /*WLAN_QCT_CUST_WMM_TSDIR_BOTH*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* InfraNomMsduSizeAcVi - Set normal MSDU size for VI
|
|
||||||
* @Min: 0x0
|
|
||||||
* @Max: 0xFFFF
|
|
||||||
* @Default: 0x85DC
|
|
||||||
*
|
|
||||||
* This ini is used to set normal MSDU size for VI
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME "InfraNomMsduSizeAcVi"
|
|
||||||
#define CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN (0x0)
|
|
||||||
#define CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX (0xFFFF)
|
|
||||||
#define CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT (0x85DC)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* InfraMeanDataRateAcVi - Set mean data rate for VI
|
|
||||||
* @Min: 0x0
|
|
||||||
* @Max: 0xFFFFFFFF
|
|
||||||
* @Default: 0x57E40
|
|
||||||
*
|
|
||||||
* This ini is used to set mean data rate for VI
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME "InfraMeanDataRateAcVi"
|
|
||||||
#define CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN (0x0)
|
|
||||||
#define CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX (0xFFFFFFFF)
|
|
||||||
#define CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT (0x57E40)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* iInfraMinPhyRateAcVi - Set min PHY rate for VI
|
|
||||||
* @Min: 0x0
|
|
||||||
* @Max: 0xFFFFFFFF
|
|
||||||
* @Default: 0x5B8D80
|
|
||||||
*
|
|
||||||
* This ini is used to set min PHY rate for VI
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME "InfraMinPhyRateAcVi"
|
|
||||||
#define CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN (0x0)
|
|
||||||
#define CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX (0xFFFFFFFF)
|
|
||||||
#define CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT (0x5B8D80)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* <ini>
|
|
||||||
* InfraSbaAcVi - Set surplus bandwidth allowance for VI
|
|
||||||
* @Min: 0x2001
|
|
||||||
* @Max: 0xFFFF
|
|
||||||
* @Default: 0x2001
|
|
||||||
*
|
|
||||||
* This ini is used to set surplus bandwidth allowance for VI
|
|
||||||
*
|
|
||||||
* Related: None.
|
|
||||||
*
|
|
||||||
* Supported Feature: WMM
|
|
||||||
*
|
|
||||||
* Usage: Internal/External
|
|
||||||
*
|
|
||||||
* </ini>
|
|
||||||
*/
|
|
||||||
#define CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME "InfraSbaAcVi"
|
|
||||||
#define CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN (0x2001)
|
|
||||||
#define CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX (0xFFFF)
|
|
||||||
#define CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT (0x2001)
|
|
||||||
|
|
||||||
/* default TSPEC parameters for AC_BE*/
|
/* default TSPEC parameters for AC_BE*/
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
@@ -7108,8 +6953,6 @@ struct hdd_config {
|
|||||||
enum hdd_wmm_user_mode WmmMode;
|
enum hdd_wmm_user_mode WmmMode;
|
||||||
bool b80211eIsEnabled;
|
bool b80211eIsEnabled;
|
||||||
uint8_t UapsdMask; /* what ACs to setup U-APSD for at assoc */
|
uint8_t UapsdMask; /* what ACs to setup U-APSD for at assoc */
|
||||||
uint32_t InfraUapsdViSrvIntv;
|
|
||||||
uint32_t InfraUapsdViSuspIntv;
|
|
||||||
uint32_t InfraUapsdBeSrvIntv;
|
uint32_t InfraUapsdBeSrvIntv;
|
||||||
uint32_t InfraUapsdBeSuspIntv;
|
uint32_t InfraUapsdBeSuspIntv;
|
||||||
uint32_t InfraUapsdBkSrvIntv;
|
uint32_t InfraUapsdBkSrvIntv;
|
||||||
@@ -7126,13 +6969,6 @@ struct hdd_config {
|
|||||||
bool isRoamOffloadScanEnabled;
|
bool isRoamOffloadScanEnabled;
|
||||||
bool bImplicitQosEnabled;
|
bool bImplicitQosEnabled;
|
||||||
|
|
||||||
/* default TSPEC parameters for AC_VI */
|
|
||||||
enum sme_qos_wmm_dir_type InfraDirAcVi;
|
|
||||||
uint16_t InfraNomMsduSizeAcVi;
|
|
||||||
uint32_t InfraMeanDataRateAcVi;
|
|
||||||
uint32_t InfraMinPhyRateAcVi;
|
|
||||||
uint16_t InfraSbaAcVi;
|
|
||||||
|
|
||||||
/* default TSPEC parameters for AC_BE */
|
/* default TSPEC parameters for AC_BE */
|
||||||
enum sme_qos_wmm_dir_type InfraDirAcBe;
|
enum sme_qos_wmm_dir_type InfraDirAcBe;
|
||||||
uint16_t InfraNomMsduSizeAcBe;
|
uint16_t InfraNomMsduSizeAcBe;
|
||||||
|
@@ -770,22 +770,6 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_QOS_WMM_UAPSD_MASK_MIN,
|
CFG_QOS_WMM_UAPSD_MASK_MIN,
|
||||||
CFG_QOS_WMM_UAPSD_MASK_MAX),
|
CFG_QOS_WMM_UAPSD_MASK_MAX),
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
|
|
||||||
WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, InfraUapsdViSrvIntv,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
|
|
||||||
WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, InfraUapsdViSuspIntv,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
|
REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
|
||||||
WLAN_PARAM_Integer,
|
WLAN_PARAM_Integer,
|
||||||
struct hdd_config, InfraUapsdBeSrvIntv,
|
struct hdd_config, InfraUapsdBeSrvIntv,
|
||||||
@@ -899,44 +883,6 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
|
CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
|
||||||
cb_notify_update_roam_scan_offload_enabled, 0),
|
cb_notify_update_roam_scan_offload_enabled, 0),
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
|
|
||||||
struct hdd_config, InfraDirAcVi,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
|
|
||||||
WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, InfraNomMsduSizeAcVi,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
|
|
||||||
WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, InfraMeanDataRateAcVi,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
|
|
||||||
WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, InfraMinPhyRateAcVi,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
|
|
||||||
struct hdd_config, InfraSbaAcVi,
|
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
|
|
||||||
CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
|
|
||||||
CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
|
|
||||||
|
|
||||||
REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
|
REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
|
||||||
struct hdd_config, InfraDirAcBe,
|
struct hdd_config, InfraDirAcBe,
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||||
|
@@ -1133,22 +1133,63 @@ static void __hdd_wmm_do_implicit_qos(struct work_struct *work)
|
|||||||
((WLAN_HDD_GET_CTX(adapter))->config->
|
((WLAN_HDD_GET_CTX(adapter))->config->
|
||||||
UapsdMask & SME_QOS_UAPSD_VI) ? 1 : 0;
|
UapsdMask & SME_QOS_UAPSD_VI) ? 1 : 0;
|
||||||
}
|
}
|
||||||
qosInfo.ts_info.direction =
|
status = ucfg_mlme_get_wmm_dir_ac_vi(
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->InfraDirAcVi;
|
hdd_ctx->psoc, &dir_ac);
|
||||||
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get infra_dir_ac_vi failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qosInfo.ts_info.direction = dir_ac;
|
||||||
|
|
||||||
qosInfo.ts_info.tid = 255;
|
qosInfo.ts_info.tid = 255;
|
||||||
qosInfo.mean_data_rate =
|
status = ucfg_mlme_get_wmm_uapsd_vi_srv_intv(
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->
|
hdd_ctx->psoc, &uapsd_value);
|
||||||
InfraMeanDataRateAcVi;
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
qosInfo.min_phy_rate =
|
hdd_err("Get uapsd_vi_srv_intv failed");
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->InfraMinPhyRateAcVi;
|
return;
|
||||||
qosInfo.min_service_interval =
|
}
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->InfraUapsdViSrvIntv;
|
qosInfo.min_service_interval = uapsd_value;
|
||||||
qosInfo.nominal_msdu_size =
|
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->InfraNomMsduSizeAcVi;
|
status = ucfg_mlme_get_wmm_uapsd_vi_sus_intv(
|
||||||
qosInfo.surplus_bw_allowance =
|
hdd_ctx->psoc, &uapsd_value);
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->InfraSbaAcVi;
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
qosInfo.suspension_interval =
|
hdd_err("Get uapsd_vi_sus_intv failed");
|
||||||
(WLAN_HDD_GET_CTX(adapter))->config->InfraUapsdViSuspIntv;
|
return;
|
||||||
|
}
|
||||||
|
qosInfo.suspension_interval = uapsd_value;
|
||||||
|
|
||||||
|
status = ucfg_mlme_get_wmm_mean_data_rate_ac_vi(
|
||||||
|
hdd_ctx->psoc, &rate_ac);
|
||||||
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get mean_data_rate_ac_vi failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qosInfo.mean_data_rate = rate_ac;
|
||||||
|
|
||||||
|
status = ucfg_mlme_get_wmm_min_phy_rate_ac_vi(
|
||||||
|
hdd_ctx->psoc, &rate_ac);
|
||||||
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get min_phy_rate_ac_vi failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qosInfo.min_phy_rate = rate_ac;
|
||||||
|
|
||||||
|
status = ucfg_mlme_get_wmm_nom_msdu_size_ac_vi(
|
||||||
|
hdd_ctx->psoc, &nom_msdu_size_ac);
|
||||||
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get nom_msdu_size_ac_vi failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qosInfo.nominal_msdu_size = nom_msdu_size_ac;
|
||||||
|
|
||||||
|
status = ucfg_mlme_get_wmm_sba_ac_vi(
|
||||||
|
hdd_ctx->psoc, &sba_ac);
|
||||||
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get sba_ac_vi failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
qosInfo.surplus_bw_allowance = sba_ac;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
case SME_AC_BE:
|
case SME_AC_BE:
|
||||||
@@ -1923,15 +1964,26 @@ QDF_STATUS hdd_wmm_assoc(struct hdd_adapter *adapter,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (uapsdMask & HDD_AC_VI) {
|
if (uapsdMask & HDD_AC_VI) {
|
||||||
status =
|
status = ucfg_mlme_get_wmm_uapsd_vi_srv_intv(
|
||||||
sme_enable_uapsd_for_ac((WLAN_HDD_GET_STATION_CTX_PTR
|
hdd_ctx->psoc, &srv_value);
|
||||||
(adapter))->conn_info.staId[0],
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
SME_AC_VI, 5, 5,
|
hdd_err("Get uapsd_vi_srv_intv failed");
|
||||||
hdd_ctx->config->InfraUapsdViSrvIntv,
|
return QDF_STATUS_SUCCESS;
|
||||||
hdd_ctx->config->InfraUapsdViSuspIntv,
|
}
|
||||||
SME_QOS_WMM_TS_DIR_BOTH, 1,
|
status = ucfg_mlme_get_wmm_uapsd_vi_sus_intv(
|
||||||
adapter->session_id,
|
hdd_ctx->psoc, &sus_value);
|
||||||
hdd_ctx->config->DelayedTriggerFrmInt);
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get uapsd_vi_sus_intv failed");
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
status = sme_enable_uapsd_for_ac(
|
||||||
|
(WLAN_HDD_GET_STATION_CTX_PTR(
|
||||||
|
adapter))->conn_info.staId[0],
|
||||||
|
SME_AC_VI, 5, 5, srv_value, sus_value,
|
||||||
|
SME_QOS_WMM_TS_DIR_BOTH, 1,
|
||||||
|
adapter->session_id,
|
||||||
|
hdd_ctx->config->DelayedTriggerFrmInt);
|
||||||
|
|
||||||
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(status));
|
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(status));
|
||||||
}
|
}
|
||||||
@@ -2105,8 +2157,13 @@ QDF_STATUS hdd_wmm_get_uapsd_mask(struct hdd_adapter *adapter,
|
|||||||
if (uapsd_value == 0)
|
if (uapsd_value == 0)
|
||||||
uapsdMask &= ~HDD_AC_VO;
|
uapsdMask &= ~HDD_AC_VO;
|
||||||
|
|
||||||
if ((WLAN_HDD_GET_CTX(adapter))->config->
|
status = ucfg_mlme_get_wmm_uapsd_vi_srv_intv(
|
||||||
InfraUapsdViSrvIntv == 0) {
|
hdd_ctx->psoc, &uapsd_value);
|
||||||
|
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_err("Get uapsd_vi_srv_intv failed");
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
if (uapsd_value == 0) {
|
||||||
uapsdMask &= ~HDD_AC_VI;
|
uapsdMask &= ~HDD_AC_VI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user