qcacld-3.0: Move Enable detection of data stall events to DP component

Move change: Id4fd7f10f0806a39c5bdb7b8c097c26894dc5340
Enable detection of data stall events to DP component

Change-Id: I9eab2f29739cd0159f202a3a95f4a4baa70cb47d
CRs-Fixed: 3230891
This commit is contained in:
Amit Mehta
2022-06-28 14:36:23 +05:30
committed by Madan Koyyalamudi
parent 7d1e47bb27
commit 08f5a4c814
10 changed files with 59 additions and 34 deletions

View File

@@ -596,4 +596,20 @@ dp_is_low_tput_gro_enable(struct wlan_dp_psoc_context *dp_ctx)
return false;
}
#endif
#define DP_DATA_STALL_ENABLE BIT(0)
#define DP_HOST_STA_TX_TIMEOUT BIT(16)
#define DP_HOST_SAP_TX_TIMEOUT BIT(17)
#define DP_HOST_NUD_FAILURE BIT(18)
#define DP_TIMEOUT_WLM_MODE BIT(31)
#define FW_DATA_STALL_EVT_MASK 0x8000FFFF
/**
* dp_is_data_stall_event_enabled() - Check if data stall detection is enabled
* @evt: Data stall event to be checked
*
* Return: True if the data stall event is enabled
*/
bool dp_is_data_stall_event_enabled(uint32_t evt);
#endif

View File

@@ -1508,3 +1508,13 @@ __dp_objmgr_put_vdev_by_user(struct wlan_objmgr_vdev *vdev,
}
#endif /* WLAN_OBJMGR_REF_ID_TRACE */
bool dp_is_data_stall_event_enabled(uint32_t evt)
{
uint32_t bitmap = cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
cfg_dp_enable_data_stall);
if (bitmap & DP_DATA_STALL_ENABLE || bitmap & evt)
return true;
return false;
}

View File

@@ -622,7 +622,7 @@ void dp_softap_tx_timeout(struct wlan_dp_intf *dp_intf)
dp_err("Detected data stall due to continuous TX timeouts");
dp_intf->dp_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall))
if (dp_is_data_stall_event_enabled(DP_HOST_SAP_TX_TIMEOUT))
cdp_post_data_stall_event(soc,
DATA_STALL_LOG_INDICATOR_HOST_DRIVER,
DATA_STALL_LOG_HOST_SOFTAP_TX_TIMEOUT,

View File

@@ -755,7 +755,7 @@ void dp_tx_timeout(struct wlan_dp_intf *dp_intf)
dp_err("Data stall due to continuous TX timeouts");
dp_intf->dp_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
if (cdp_cfg_get(soc, cfg_dp_enable_data_stall))
if (dp_is_data_stall_event_enabled(DP_HOST_STA_TX_TIMEOUT))
cdp_post_data_stall_event(soc,
DATA_STALL_LOG_INDICATOR_HOST_DRIVER,
DATA_STALL_LOG_HOST_STA_TX_TIMEOUT,

View File

@@ -1155,4 +1155,21 @@ bool ucfg_dp_get_napi_enabled(struct wlan_objmgr_psoc *psoc);
* Return: None
*/
void ucfg_dp_set_tc_ingress_prio(struct wlan_objmgr_psoc *psoc, uint32_t value);
/**
* ucfg_dp_nud_fail_data_stall_evt_enabled() - Check if NUD failuire data stall
* detection is enabled
*
* Return: True if the data stall event is enabled
*/
bool ucfg_dp_nud_fail_data_stall_evt_enabled(void);
/**
* ucfg_dp_fw_data_stall_evt_enabled() - Check if Fw data stall
* detection is enabled
*
* Return: data stall event mask
*/
uint32_t ucfg_dp_fw_data_stall_evt_enabled(void);
#endif /* _WLAN_DP_UCFG_API_H_ */

View File

@@ -2076,3 +2076,14 @@ void ucfg_dp_set_tc_ingress_prio(struct wlan_objmgr_psoc *psoc, uint32_t value)
}
dp_ctx->dp_agg_param.tc_ingress_prio = value;
}
bool ucfg_dp_nud_fail_data_stall_evt_enabled(void)
{
return dp_is_data_stall_event_enabled(DP_HOST_NUD_FAILURE);
}
uint32_t ucfg_dp_fw_data_stall_evt_enabled(void)
{
return cdp_cfg_get(cds_get_context(QDF_MODULE_ID_SOC),
cfg_dp_enable_data_stall) & FW_DATA_STALL_EVT_MASK;
}