From ab67087fbdbaedaa60614580da68bb1b52e7267c Mon Sep 17 00:00:00 2001 From: "Poddar, Siddarth" Date: Thu, 10 Aug 2017 14:24:46 +0530 Subject: qcacmn: Add register/deregister data stall detect cb api Add register and deregister data stall detect callback apis. Change-Id: I59d5871b7ec03da4b4f69d87b14f7eb5e8606c4a CRs-Fixed: 2090654 --- dp/inc/cdp_txrx_cmn.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/dp/inc/cdp_txrx_cmn.h b/dp/inc/cdp_txrx_cmn.h index f159a63c6797..d5862a357185 100644 --- a/dp/inc/cdp_txrx_cmn.h +++ b/dp/inc/cdp_txrx_cmn.h @@ -366,6 +366,110 @@ ol_txrx_mgmt_tx_cb_set(ol_txrx_pdev_handle pdev, int ol_txrx_get_tx_pending(ol_txrx_pdev_handle pdev); +/** + * enum data_stall_log_event_indicator - Module triggering data stall + * @DATA_STALL_LOG_INDICATOR_UNUSED: Unused + * @DATA_STALL_LOG_INDICATOR_HOST_DRIVER: Host driver indicates data stall + * @DATA_STALL_LOG_INDICATOR_FIRMWARE: FW indicates data stall + * @DATA_STALL_LOG_INDICATOR_FRAMEWORK: Framework indicates data stall + * + * Enum indicating the module that indicates data stall event + */ +enum data_stall_log_event_indicator { + DATA_STALL_LOG_INDICATOR_UNUSED, + DATA_STALL_LOG_INDICATOR_HOST_DRIVER, + DATA_STALL_LOG_INDICATOR_FIRMWARE, + DATA_STALL_LOG_INDICATOR_FRAMEWORK, +}; + +/** + * enum data_stall_log_event_type - data stall event type + * @DATA_STALL_LOG_NONE + * @DATA_STALL_LOG_FW_VDEV_PAUSE + * @DATA_STALL_LOG_HWSCHED_CMD_FILTER + * @DATA_STALL_LOG_HWSCHED_CMD_FLUSH + * @DATA_STALL_LOG_FW_RX_REFILL_FAILED + * @DATA_STALL_LOG_FW_RX_FCS_LEN_ERROR + * @DATA_STALL_LOG_FW_WDOG_ERRORS + * @DATA_STALL_LOG_BB_WDOG_ERROR + * @DATA_STALL_LOG_HOST_STA_TX_TIMEOUT + * @DATA_STALL_LOG_HOST_SOFTAP_TX_TIMEOUT + * @DATA_STALL_LOG_NUD_FAILURE + * + * Enum indicating data stall event type + */ +enum data_stall_log_event_type { + DATA_STALL_LOG_NONE, + DATA_STALL_LOG_FW_VDEV_PAUSE, + DATA_STALL_LOG_HWSCHED_CMD_FILTER, + DATA_STALL_LOG_HWSCHED_CMD_FLUSH, + DATA_STALL_LOG_FW_RX_REFILL_FAILED, + DATA_STALL_LOG_FW_RX_FCS_LEN_ERROR, + DATA_STALL_LOG_FW_WDOG_ERRORS, + DATA_STALL_LOG_BB_WDOG_ERROR, + DATA_STALL_LOG_HOST_STA_TX_TIMEOUT, + DATA_STALL_LOG_HOST_SOFTAP_TX_TIMEOUT, + DATA_STALL_LOG_NUD_FAILURE, +}; + + +/** + * enum data_stall_log_recovery_type - data stall recovery type + * @DATA_STALL_LOG_RECOVERY_NONE, + * @DATA_STALL_LOG_RECOVERY_CONNECT_DISCONNECT, + * @DATA_STALL_LOG_RECOVERY_TRIGGER_PDR + * + * Enum indicating data stall recovery type + */ +enum data_stall_log_recovery_type { + DATA_STALL_LOG_RECOVERY_NONE = 0, + DATA_STALL_LOG_RECOVERY_CONNECT_DISCONNECT, + DATA_STALL_LOG_RECOVERY_TRIGGER_PDR, +}; + + +/** + * struct data_stall_event_info - data stall info + * @indicator: Module triggering data stall + * @data_stall_type: data stall event type + * @vdev_id_bitmap: vdev_id_bitmap + * @pdev_id: pdev id + * @recovery_type: data stall recovery type + */ +struct data_stall_event_info { + uint32_t indicator; + uint32_t data_stall_type; + uint32_t vdev_id_bitmap; + uint32_t pdev_id; + uint32_t recovery_type; +}; + +struct data_stall_event_info; +typedef struct data_stall_event_info *data_stall_event_info_handle; + + +typedef void (*data_stall_detect_cb)(data_stall_event_info_handle); + +/** + * ol_register_data_stall_detect_cb() - register data stall callback + * @data_stall_detect_callback: data stall callback function + * + * + * Return: QDF_STATUS Enumeration + */ +QDF_STATUS ol_register_data_stall_detect_cb( + data_stall_detect_cb data_stall_detect_callback); + +/** + * ol_deregister_data_stall_detect_cb() - de-register data stall callback + * @data_stall_detect_callback: data stall callback function + * + * + * Return: QDF_STATUS Enumeration + */ +QDF_STATUS ol_deregister_data_stall_detect_cb( + data_stall_detect_cb data_stall_detect_callback); + /** * ol_txrx_data_tx_cb - Function registered with the data path * that is called when tx frames marked as "no free" are -- cgit v1.2.3