summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPoddar, Siddarth <siddpodd@codeaurora.org>2017-08-10 14:24:46 +0530
committersnandini <snandini@codeaurora.org>2017-08-29 10:23:21 -0700
commitab67087fbdbaedaa60614580da68bb1b52e7267c (patch)
treecaafee8814929a9d76005babcd7573c6e81f34c5
parent79ee4acdc3e3b8839c98e9bb2bf137dc8d83cf96 (diff)
qcacmn: Add register/deregister data stall detect cb api
Add register and deregister data stall detect callback apis. Change-Id: I59d5871b7ec03da4b4f69d87b14f7eb5e8606c4a CRs-Fixed: 2090654
-rw-r--r--dp/inc/cdp_txrx_cmn.h104
1 files changed, 104 insertions, 0 deletions
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
@@ -367,6 +367,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
* done being transmitted