qcacld-3.0: Add INI to config tx retry threshold
Add gTxAggSwRetry for tx aggregation case, and Add gTxNonAggSwRetry for non tx aggregation case. Change-Id: I92265fb4e279eaf63c45f0134f997df02bca8737 CRs-Fixed: 2436305
This commit is contained in:
@@ -796,6 +796,8 @@ static void mlme_init_qos_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VI);
|
cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VI);
|
||||||
qos_aggr_params->tx_aggr_sw_retry_threshold_vo =
|
qos_aggr_params->tx_aggr_sw_retry_threshold_vo =
|
||||||
cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VO);
|
cfg_get(psoc, CFG_TX_AGGR_SW_RETRY_VO);
|
||||||
|
qos_aggr_params->tx_aggr_sw_retry_threshold =
|
||||||
|
cfg_get(psoc, CFG_TX_AGGR_SW_RETRY);
|
||||||
qos_aggr_params->tx_non_aggr_sw_retry_threshold_be =
|
qos_aggr_params->tx_non_aggr_sw_retry_threshold_be =
|
||||||
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_BE);
|
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_BE);
|
||||||
qos_aggr_params->tx_non_aggr_sw_retry_threshold_bk =
|
qos_aggr_params->tx_non_aggr_sw_retry_threshold_bk =
|
||||||
@@ -804,6 +806,8 @@ static void mlme_init_qos_cfg(struct wlan_objmgr_psoc *psoc,
|
|||||||
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_VI);
|
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_VI);
|
||||||
qos_aggr_params->tx_non_aggr_sw_retry_threshold_vo =
|
qos_aggr_params->tx_non_aggr_sw_retry_threshold_vo =
|
||||||
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_VO);
|
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY_VO);
|
||||||
|
qos_aggr_params->tx_non_aggr_sw_retry_threshold =
|
||||||
|
cfg_get(psoc, CFG_TX_NON_AGGR_SW_RETRY);
|
||||||
qos_aggr_params->sap_max_inactivity_override =
|
qos_aggr_params->sap_max_inactivity_override =
|
||||||
cfg_get(psoc, CFG_SAP_MAX_INACTIVITY_OVERRIDE);
|
cfg_get(psoc, CFG_SAP_MAX_INACTIVITY_OVERRIDE);
|
||||||
qos_aggr_params->sap_uapsd_enabled =
|
qos_aggr_params->sap_uapsd_enabled =
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -397,7 +397,56 @@
|
|||||||
0, \
|
0, \
|
||||||
CFG_VALUE_OR_DEFAULT, \
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
"Tx non aggregation retry value for VO")
|
"Tx non aggregation retry value for VO")
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTxAggSwRetry - Configure Tx aggregation sw retry
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 64
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* gTxAggSwRetry gives an option to configure Tx aggregation sw
|
||||||
|
* retry. This can be useful in debugging throughput issues.
|
||||||
|
*
|
||||||
|
* Related: None
|
||||||
|
*
|
||||||
|
* Supported Feature: STA
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TX_AGGR_SW_RETRY CFG_INI_UINT( \
|
||||||
|
"gTxAggSwRetry", \
|
||||||
|
0, \
|
||||||
|
64, \
|
||||||
|
0, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Tx aggregation retry value")
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gTxNonAggSwRetry - Configure Tx non aggregation sw retry
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 64
|
||||||
|
* @Default: 0
|
||||||
|
*
|
||||||
|
* gTxNonAggSwRetry gives an option to configure Tx non aggregation sw
|
||||||
|
* retry. This can be useful in debugging throughput issues.
|
||||||
|
*
|
||||||
|
* Related: None
|
||||||
|
*
|
||||||
|
* Supported Feature: STA
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_TX_NON_AGGR_SW_RETRY CFG_INI_UINT( \
|
||||||
|
"gTxNonAggSwRetry", \
|
||||||
|
0, \
|
||||||
|
64, \
|
||||||
|
0, \
|
||||||
|
CFG_VALUE_OR_DEFAULT, \
|
||||||
|
"Tx non aggregation retry value")
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* gSapMaxInactivityOverride - Configure
|
* gSapMaxInactivityOverride - Configure
|
||||||
@@ -459,10 +508,12 @@
|
|||||||
CFG(CFG_TX_AGGR_SW_RETRY_BK) \
|
CFG(CFG_TX_AGGR_SW_RETRY_BK) \
|
||||||
CFG(CFG_TX_AGGR_SW_RETRY_VI) \
|
CFG(CFG_TX_AGGR_SW_RETRY_VI) \
|
||||||
CFG(CFG_TX_AGGR_SW_RETRY_VO) \
|
CFG(CFG_TX_AGGR_SW_RETRY_VO) \
|
||||||
|
CFG(CFG_TX_AGGR_SW_RETRY) \
|
||||||
CFG(CFG_TX_NON_AGGR_SW_RETRY_BE) \
|
CFG(CFG_TX_NON_AGGR_SW_RETRY_BE) \
|
||||||
CFG(CFG_TX_NON_AGGR_SW_RETRY_BK) \
|
CFG(CFG_TX_NON_AGGR_SW_RETRY_BK) \
|
||||||
CFG(CFG_TX_NON_AGGR_SW_RETRY_VI) \
|
CFG(CFG_TX_NON_AGGR_SW_RETRY_VI) \
|
||||||
CFG(CFG_TX_NON_AGGR_SW_RETRY_VO) \
|
CFG(CFG_TX_NON_AGGR_SW_RETRY_VO) \
|
||||||
|
CFG(CFG_TX_NON_AGGR_SW_RETRY) \
|
||||||
CFG(CFG_SAP_QOS_UAPSD)
|
CFG(CFG_SAP_QOS_UAPSD)
|
||||||
|
|
||||||
#endif /* __CFG_MLME_QOS_H */
|
#endif /* __CFG_MLME_QOS_H */
|
||||||
|
@@ -789,10 +789,12 @@ struct wlan_mlme_vht_caps {
|
|||||||
* @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for BK
|
* @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for BK
|
||||||
* @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for VI
|
* @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for VI
|
||||||
* @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for VO
|
* @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for VO
|
||||||
|
* @tx_aggr_sw_retry_threshold: aggr sw retry threshold
|
||||||
* @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for BE
|
* @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for BE
|
||||||
* @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for BK
|
* @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for BK
|
||||||
* @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for VI
|
* @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for VI
|
||||||
* @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for VO
|
* @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for VO
|
||||||
|
* @tx_non_aggr_sw_retry_threshold: non aggr sw retry threshold
|
||||||
* @sap_max_inactivity_override: Override updating ap_sta_inactivity from
|
* @sap_max_inactivity_override: Override updating ap_sta_inactivity from
|
||||||
* hostapd.conf
|
* hostapd.conf
|
||||||
* @sap_uapsd_enabled: Flag to enable/disable UAPSD for SAP
|
* @sap_uapsd_enabled: Flag to enable/disable UAPSD for SAP
|
||||||
@@ -808,10 +810,12 @@ struct wlan_mlme_qos {
|
|||||||
uint32_t tx_aggr_sw_retry_threshold_bk;
|
uint32_t tx_aggr_sw_retry_threshold_bk;
|
||||||
uint32_t tx_aggr_sw_retry_threshold_vi;
|
uint32_t tx_aggr_sw_retry_threshold_vi;
|
||||||
uint32_t tx_aggr_sw_retry_threshold_vo;
|
uint32_t tx_aggr_sw_retry_threshold_vo;
|
||||||
|
uint32_t tx_aggr_sw_retry_threshold;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_be;
|
uint32_t tx_non_aggr_sw_retry_threshold_be;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_bk;
|
uint32_t tx_non_aggr_sw_retry_threshold_bk;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_vi;
|
uint32_t tx_non_aggr_sw_retry_threshold_vi;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_vo;
|
uint32_t tx_non_aggr_sw_retry_threshold_vo;
|
||||||
|
uint32_t tx_non_aggr_sw_retry_threshold;
|
||||||
bool sap_max_inactivity_override;
|
bool sap_max_inactivity_override;
|
||||||
bool sap_uapsd_enabled;
|
bool sap_uapsd_enabled;
|
||||||
};
|
};
|
||||||
|
@@ -5232,10 +5232,12 @@ struct sir_set_tx_rx_aggregation_size {
|
|||||||
* @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for BK
|
* @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for BK
|
||||||
* @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for VI
|
* @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for VI
|
||||||
* @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for VO
|
* @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for VO
|
||||||
|
* @tx_aggr_sw_retry_threshold: aggr sw retry threshold
|
||||||
* @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for BE
|
* @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for BE
|
||||||
* @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for BK
|
* @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for BK
|
||||||
* @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for VI
|
* @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for VI
|
||||||
* @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for VO
|
* @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for VO
|
||||||
|
* @tx_non_aggr_sw_retry_threshold: non aggr sw retry threshold
|
||||||
*/
|
*/
|
||||||
struct sir_set_tx_sw_retry_threshold {
|
struct sir_set_tx_sw_retry_threshold {
|
||||||
uint8_t vdev_id;
|
uint8_t vdev_id;
|
||||||
@@ -5243,10 +5245,12 @@ struct sir_set_tx_sw_retry_threshold {
|
|||||||
uint32_t tx_aggr_sw_retry_threshold_bk;
|
uint32_t tx_aggr_sw_retry_threshold_bk;
|
||||||
uint32_t tx_aggr_sw_retry_threshold_vi;
|
uint32_t tx_aggr_sw_retry_threshold_vi;
|
||||||
uint32_t tx_aggr_sw_retry_threshold_vo;
|
uint32_t tx_aggr_sw_retry_threshold_vo;
|
||||||
|
uint32_t tx_aggr_sw_retry_threshold;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_be;
|
uint32_t tx_non_aggr_sw_retry_threshold_be;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_bk;
|
uint32_t tx_non_aggr_sw_retry_threshold_bk;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_vi;
|
uint32_t tx_non_aggr_sw_retry_threshold_vi;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_vo;
|
uint32_t tx_non_aggr_sw_retry_threshold_vo;
|
||||||
|
uint32_t tx_non_aggr_sw_retry_threshold;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -16786,6 +16786,8 @@ QDF_STATUS csr_issue_add_sta_for_session_req(struct mac_context *mac,
|
|||||||
qos_aggr->tx_aggr_sw_retry_threshold_vi;
|
qos_aggr->tx_aggr_sw_retry_threshold_vi;
|
||||||
add_sta_self_req->tx_aggr_sw_retry_threshold_vo =
|
add_sta_self_req->tx_aggr_sw_retry_threshold_vo =
|
||||||
qos_aggr->tx_aggr_sw_retry_threshold_vo;
|
qos_aggr->tx_aggr_sw_retry_threshold_vo;
|
||||||
|
add_sta_self_req->tx_aggr_sw_retry_threshold =
|
||||||
|
qos_aggr->tx_aggr_sw_retry_threshold;
|
||||||
add_sta_self_req->tx_non_aggr_sw_retry_threshold_be =
|
add_sta_self_req->tx_non_aggr_sw_retry_threshold_be =
|
||||||
qos_aggr->tx_non_aggr_sw_retry_threshold_be;
|
qos_aggr->tx_non_aggr_sw_retry_threshold_be;
|
||||||
add_sta_self_req->tx_non_aggr_sw_retry_threshold_bk =
|
add_sta_self_req->tx_non_aggr_sw_retry_threshold_bk =
|
||||||
@@ -16794,6 +16796,8 @@ QDF_STATUS csr_issue_add_sta_for_session_req(struct mac_context *mac,
|
|||||||
qos_aggr->tx_non_aggr_sw_retry_threshold_vi;
|
qos_aggr->tx_non_aggr_sw_retry_threshold_vi;
|
||||||
add_sta_self_req->tx_non_aggr_sw_retry_threshold_vo =
|
add_sta_self_req->tx_non_aggr_sw_retry_threshold_vo =
|
||||||
qos_aggr->tx_non_aggr_sw_retry_threshold_vo;
|
qos_aggr->tx_non_aggr_sw_retry_threshold_vo;
|
||||||
|
add_sta_self_req->tx_non_aggr_sw_retry_threshold =
|
||||||
|
qos_aggr->tx_non_aggr_sw_retry_threshold;
|
||||||
|
|
||||||
add_sta_self_req->enable_bcast_probe_rsp =
|
add_sta_self_req->enable_bcast_probe_rsp =
|
||||||
mac->mlme_cfg->oce.enable_bcast_probe_rsp;
|
mac->mlme_cfg->oce.enable_bcast_probe_rsp;
|
||||||
|
@@ -283,7 +283,7 @@ QDF_STATUS wma_set_tx_rx_aggregation_size
|
|||||||
QDF_STATUS wma_set_tx_rx_aggregation_size_per_ac
|
QDF_STATUS wma_set_tx_rx_aggregation_size_per_ac
|
||||||
(struct sir_set_tx_rx_aggregation_size *tx_rx_aggregation_size);
|
(struct sir_set_tx_rx_aggregation_size *tx_rx_aggregation_size);
|
||||||
/**
|
/**
|
||||||
* wma_set_sw_retry_threshold() - set sw retry threshold per AC for tx
|
* wma_set_sw_retry_threshold_per_ac() - set sw retry threshold per AC for tx
|
||||||
* @handle: wma handle
|
* @handle: wma handle
|
||||||
* @tx_sw_retry_threshold: value needs to set to firmware
|
* @tx_sw_retry_threshold: value needs to set to firmware
|
||||||
*
|
*
|
||||||
@@ -292,9 +292,21 @@ QDF_STATUS wma_set_tx_rx_aggregation_size_per_ac
|
|||||||
*
|
*
|
||||||
* Return: QDF_STATUS.
|
* Return: QDF_STATUS.
|
||||||
*/
|
*/
|
||||||
QDF_STATUS wma_set_sw_retry_threshold
|
QDF_STATUS wma_set_sw_retry_threshold_per_ac
|
||||||
(WMA_HANDLE handle,
|
(WMA_HANDLE handle,
|
||||||
struct sir_set_tx_sw_retry_threshold *tx_sw_retry_threshold);
|
struct sir_set_tx_sw_retry_threshold *tx_sw_retry_threshold);
|
||||||
|
/**
|
||||||
|
* wma_set_sw_retry_threshold() - set sw retry threshold for tx
|
||||||
|
* @vdev_id: vdev
|
||||||
|
* @retry: retry number
|
||||||
|
* @param: for aggregation or non-aggregation
|
||||||
|
*
|
||||||
|
* This function sends WMI command to set the sw retry threshold for Tx.
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS.
|
||||||
|
*/
|
||||||
|
QDF_STATUS wma_set_sw_retry_threshold(uint8_t vdev_id, uint32_t retry,
|
||||||
|
uint32_t param);
|
||||||
/**
|
/**
|
||||||
* wma_get_sar_limit() - get SAR limits from the target
|
* wma_get_sar_limit() - get SAR limits from the target
|
||||||
* @handle: wma handle
|
* @handle: wma handle
|
||||||
|
@@ -889,10 +889,12 @@ typedef struct sMaxTxPowerPerBandParams {
|
|||||||
* @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for bk
|
* @tx_aggr_sw_retry_threshold_bk: aggr sw retry threshold for bk
|
||||||
* @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for vi
|
* @tx_aggr_sw_retry_threshold_vi: aggr sw retry threshold for vi
|
||||||
* @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for vo
|
* @tx_aggr_sw_retry_threshold_vo: aggr sw retry threshold for vo
|
||||||
|
* @tx_aggr_sw_retry_threshold: aggr sw retry threshold
|
||||||
* @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for be
|
* @tx_non_aggr_sw_retry_threshold_be: non aggr sw retry threshold for be
|
||||||
* @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for bk
|
* @tx_non_aggr_sw_retry_threshold_bk: non aggr sw retry threshold for bk
|
||||||
* @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for vi
|
* @tx_non_aggr_sw_retry_threshold_vi: non aggr sw retry threshold for vi
|
||||||
* @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for vo
|
* @tx_non_aggr_sw_retry_threshold_vo: non aggr sw retry threshold for vo
|
||||||
|
* @tx_non_aggr_sw_retry_threshold: non aggr sw retry threshold
|
||||||
*/
|
*/
|
||||||
struct add_sta_self_params {
|
struct add_sta_self_params {
|
||||||
tSirMacAddr self_mac_addr;
|
tSirMacAddr self_mac_addr;
|
||||||
@@ -917,10 +919,12 @@ struct add_sta_self_params {
|
|||||||
uint32_t tx_aggr_sw_retry_threshold_bk;
|
uint32_t tx_aggr_sw_retry_threshold_bk;
|
||||||
uint32_t tx_aggr_sw_retry_threshold_vi;
|
uint32_t tx_aggr_sw_retry_threshold_vi;
|
||||||
uint32_t tx_aggr_sw_retry_threshold_vo;
|
uint32_t tx_aggr_sw_retry_threshold_vo;
|
||||||
|
uint32_t tx_aggr_sw_retry_threshold;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_be;
|
uint32_t tx_non_aggr_sw_retry_threshold_be;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_bk;
|
uint32_t tx_non_aggr_sw_retry_threshold_bk;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_vi;
|
uint32_t tx_non_aggr_sw_retry_threshold_vi;
|
||||||
uint32_t tx_non_aggr_sw_retry_threshold_vo;
|
uint32_t tx_non_aggr_sw_retry_threshold_vo;
|
||||||
|
uint32_t tx_non_aggr_sw_retry_threshold;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -2866,6 +2866,7 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
|||||||
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
||||||
struct wlan_objmgr_peer *obj_peer;
|
struct wlan_objmgr_peer *obj_peer;
|
||||||
struct wlan_objmgr_vdev *vdev;
|
struct wlan_objmgr_vdev *vdev;
|
||||||
|
uint32_t retry;
|
||||||
|
|
||||||
qdf_mem_zero(&tx_rx_aggregation_size, sizeof(tx_rx_aggregation_size));
|
qdf_mem_zero(&tx_rx_aggregation_size, sizeof(tx_rx_aggregation_size));
|
||||||
WMA_LOGD("mac %pM, vdev_id %hu, type %d, sub_type %d, nss 2g %d, 5g %d",
|
WMA_LOGD("mac %pM, vdev_id %hu, type %d, sub_type %d, nss 2g %d, 5g %d",
|
||||||
@@ -2975,6 +2976,8 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
|||||||
self_sta_req->tx_aggr_sw_retry_threshold_vi;
|
self_sta_req->tx_aggr_sw_retry_threshold_vi;
|
||||||
tx_sw_retry_threshold.tx_aggr_sw_retry_threshold_vo =
|
tx_sw_retry_threshold.tx_aggr_sw_retry_threshold_vo =
|
||||||
self_sta_req->tx_aggr_sw_retry_threshold_vo;
|
self_sta_req->tx_aggr_sw_retry_threshold_vo;
|
||||||
|
tx_sw_retry_threshold.tx_aggr_sw_retry_threshold =
|
||||||
|
self_sta_req->tx_aggr_sw_retry_threshold;
|
||||||
|
|
||||||
tx_sw_retry_threshold.tx_non_aggr_sw_retry_threshold_be =
|
tx_sw_retry_threshold.tx_non_aggr_sw_retry_threshold_be =
|
||||||
self_sta_req->tx_non_aggr_sw_retry_threshold_be;
|
self_sta_req->tx_non_aggr_sw_retry_threshold_be;
|
||||||
@@ -2984,6 +2987,8 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
|||||||
self_sta_req->tx_non_aggr_sw_retry_threshold_vi;
|
self_sta_req->tx_non_aggr_sw_retry_threshold_vi;
|
||||||
tx_sw_retry_threshold.tx_non_aggr_sw_retry_threshold_vo =
|
tx_sw_retry_threshold.tx_non_aggr_sw_retry_threshold_vo =
|
||||||
self_sta_req->tx_non_aggr_sw_retry_threshold_vo;
|
self_sta_req->tx_non_aggr_sw_retry_threshold_vo;
|
||||||
|
tx_sw_retry_threshold.tx_non_aggr_sw_retry_threshold =
|
||||||
|
self_sta_req->tx_non_aggr_sw_retry_threshold;
|
||||||
|
|
||||||
tx_sw_retry_threshold.vdev_id = self_sta_req->session_id;
|
tx_sw_retry_threshold.vdev_id = self_sta_req->session_id;
|
||||||
|
|
||||||
@@ -3007,8 +3012,25 @@ struct cdp_vdev *wma_vdev_attach(tp_wma_handle wma_handle,
|
|||||||
wma_set_sta_sa_query_param(wma_handle, vdev_id);
|
wma_set_sta_sa_query_param(wma_handle, vdev_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = wma_set_sw_retry_threshold(wma_handle,
|
vdev_id = tx_sw_retry_threshold.vdev_id;
|
||||||
&tx_sw_retry_threshold);
|
retry = tx_sw_retry_threshold.tx_aggr_sw_retry_threshold;
|
||||||
|
if (retry) {
|
||||||
|
ret = wma_set_sw_retry_threshold(vdev_id, retry,
|
||||||
|
WMI_PDEV_PARAM_AGG_SW_RETRY_TH);
|
||||||
|
if (QDF_IS_STATUS_ERROR(ret))
|
||||||
|
WMA_LOGE("failed set agg retry threshold");
|
||||||
|
}
|
||||||
|
|
||||||
|
retry = tx_sw_retry_threshold.tx_non_aggr_sw_retry_threshold;
|
||||||
|
if (retry) {
|
||||||
|
ret = wma_set_sw_retry_threshold(vdev_id, retry,
|
||||||
|
WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH);
|
||||||
|
if (QDF_IS_STATUS_ERROR(ret))
|
||||||
|
WMA_LOGE("failed set non-agg retry threshold");
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = wma_set_sw_retry_threshold_per_ac(wma_handle,
|
||||||
|
&tx_sw_retry_threshold);
|
||||||
if (QDF_IS_STATUS_ERROR(ret))
|
if (QDF_IS_STATUS_ERROR(ret))
|
||||||
WMA_LOGE("failed to set retry threshold(err=%d)", ret);
|
WMA_LOGE("failed to set retry threshold(err=%d)", ret);
|
||||||
break;
|
break;
|
||||||
|
@@ -45,9 +45,9 @@
|
|||||||
#include "wma_types.h"
|
#include "wma_types.h"
|
||||||
#include "lim_api.h"
|
#include "lim_api.h"
|
||||||
#include "lim_session_utils.h"
|
#include "lim_session_utils.h"
|
||||||
|
#include "cfg_ucfg_api.h"
|
||||||
#include "cds_utils.h"
|
#include "cds_utils.h"
|
||||||
|
#include "cfg_qos.h"
|
||||||
#if !defined(REMOVE_PKT_LOG)
|
#if !defined(REMOVE_PKT_LOG)
|
||||||
#include "pktlog_ac.h"
|
#include "pktlog_ac.h"
|
||||||
#endif /* REMOVE_PKT_LOG */
|
#endif /* REMOVE_PKT_LOG */
|
||||||
@@ -4679,7 +4679,7 @@ static QDF_STATUS wma_set_sw_retry_by_qos(
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS wma_set_sw_retry_threshold(
|
QDF_STATUS wma_set_sw_retry_threshold_per_ac(
|
||||||
WMA_HANDLE handle,
|
WMA_HANDLE handle,
|
||||||
struct sir_set_tx_sw_retry_threshold *tx_sw_retry_threshold)
|
struct sir_set_tx_sw_retry_threshold *tx_sw_retry_threshold)
|
||||||
{
|
{
|
||||||
@@ -4743,6 +4743,29 @@ QDF_STATUS wma_set_sw_retry_threshold(
|
|||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS wma_set_sw_retry_threshold(uint8_t vdev_id, uint32_t retry,
|
||||||
|
uint32_t param_id)
|
||||||
|
{
|
||||||
|
uint32_t max, min;
|
||||||
|
uint32_t ret;
|
||||||
|
|
||||||
|
if (param_id == WMI_PDEV_PARAM_AGG_SW_RETRY_TH) {
|
||||||
|
max = cfg_max(CFG_TX_AGGR_SW_RETRY);
|
||||||
|
min = cfg_min(CFG_TX_AGGR_SW_RETRY);
|
||||||
|
} else {
|
||||||
|
max = cfg_max(CFG_TX_NON_AGGR_SW_RETRY);
|
||||||
|
min = cfg_min(CFG_TX_NON_AGGR_SW_RETRY);
|
||||||
|
}
|
||||||
|
|
||||||
|
retry = (retry > max) ? max : retry;
|
||||||
|
retry = (retry < min) ? min : retry;
|
||||||
|
|
||||||
|
ret = wma_cli_set_command(vdev_id, param_id, retry, PDEV_CMD);
|
||||||
|
if (ret)
|
||||||
|
return QDF_STATUS_E_IO;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#ifndef QCA_SUPPORT_CP_STATS
|
#ifndef QCA_SUPPORT_CP_STATS
|
||||||
/**
|
/**
|
||||||
* wma_get_wakelock_stats() - Populates wake lock stats
|
* wma_get_wakelock_stats() - Populates wake lock stats
|
||||||
|
Reference in New Issue
Block a user