diff options
| author | Anurag Chouhan <achouhan@codeaurora.org> | 2017-08-24 11:27:41 +0530 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2017-08-29 21:27:48 -0700 |
| commit | 527e64c8b3ecba26aa8f40a6f3f319697489dcd6 (patch) | |
| tree | 0c441b6c90949a0a380ca86883d9c85dd1fc2331 | |
| parent | 67a654156b2cb6f7f9feaafafaabf415ee66d4d1 (diff) | |
qcacld-3.0: Introduce QCA_NL80211_VENDOR_SUBCMD_HANG
Event indicating to the user space that the driver has detected an
internal failure. The driver is expected to recover from such a failure
automatically, e.g., by resetting the device.
This event carries the information indicating the reason that triggered
this detection.
Change-Id: Ia13e6f102e5e18ec4864ed258728369d51a77ff4
CRs-fixed: 2098493
| -rw-r--r-- | uapi/linux/qca_vendor.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/uapi/linux/qca_vendor.h b/uapi/linux/qca_vendor.h index 7ab942ad130f..b380aaece2b0 100644 --- a/uapi/linux/qca_vendor.h +++ b/uapi/linux/qca_vendor.h @@ -228,6 +228,11 @@ * These scan parameters shall be reset by the driver/firmware once * disconnected. The attributes used with this command are defined in * enum qca_wlan_vendor_attr_active_tos. + * @QCA_NL80211_VENDOR_SUBCMD_HANG: Event indicating to the user space that the + * driver has detected an internal failure. This event carries the + * information indicating the reason that triggered this detection. The + * attributes for this command are defined in + * enum qca_wlan_vendor_attr_hang. */ enum qca_nl80211_vendor_subcmds { @@ -422,6 +427,7 @@ enum qca_nl80211_vendor_subcmds { QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_START = 154, QCA_NL80211_VENDOR_SUBCMD_SPECTRAL_SCAN_STOP = 155, QCA_NL80211_VENDOR_SUBCMD_ACTIVE_TOS = 156, + QCA_NL80211_VENDOR_SUBCMD_HANG = 157, }; /** @@ -688,6 +694,7 @@ enum qca_wlan_vendor_attr_get_station_info { * P2P listen offload index * @QCA_NL80211_VENDOR_SUBCMD_SAP_CONDITIONAL_CHAN_SWITCH_INDEX: SAP * conditional channel switch index + * @QCA_NL80211_VENDOR_SUBCMD_HANG_REASON_INDEX: hang event reason index */ enum qca_nl80211_vendor_subcmds_index { @@ -769,6 +776,7 @@ enum qca_nl80211_vendor_subcmds_index { QCA_NL80211_VENDOR_SUBCMD_UPDATE_EXTERNAL_ACS_CONFIG, QCA_NL80211_VENDOR_SUBCMD_NUD_STATS_GET_INDEX, QCA_NL80211_VENDOR_SUBCMD_PWR_SAVE_FAIL_DETECTED_INDEX, + QCA_NL80211_VENDOR_SUBCMD_HANG_REASON_INDEX, }; /** @@ -2624,6 +2632,54 @@ enum qca_wlan_vendor_attr_active_tos { QCA_WLAN_VENDOR_ATTR_ACTIVE_TOS_MAX = 3, }; +enum qca_wlan_vendor_hang_reason { + /* Unspecified reason */ + QCA_WLAN_HANG_REASON_UNSPECIFIED = 0, + /* No Map for the MAC entry for the received frame */ + QCA_WLAN_HANG_RX_HASH_NO_ENTRY_FOUND = 1, + /* peer deletion timeout happened */ + QCA_WLAN_HANG_PEER_DELETION_TIMEDOUT = 2, + /* peer unmap timeout */ + QCA_WLAN_HANG_PEER_UNMAP_TIMEDOUT = 3, + /* Scan request timed out */ + QCA_WLAN_HANG_SCAN_REQ_EXPIRED = 4, + /* Consecutive Scan attempt failures */ + QCA_WLAN_HANG_SCAN_ATTEMPT_FAILURES = 5, + /* Unable to get the message buffer */ + QCA_WLAN_HANG_GET_MSG_BUFF_FAILURE = 6, + /* Current command processing is timedout */ + QCA_WLAN_HANG_ACTIVE_LIST_TIMEOUT = 7, + /* Timeout for an ACK from FW for suspend request */ + QCA_WLAN_HANG_SUSPEND_TIMEOUT = 8, + /* Timeout for an ACK from FW for resume request */ + QCA_WLAN_HANG_RESUME_TIMEOUT = 9, + /* Transmission timeout for consecutive data frames */ + QCA_WLAN_HANG_TRANSMISSIONS_TIMEOUT = 10, + /* Timeout for the TX completion status of data frame */ + QCA_WLAN_HANG_TX_COMPLETE_TIMEOUT = 11, + /* DXE failure for tx/Rx, DXE resource unavailability */ + QCA_WLAN_HANG_DXE_FAILURE = 12, + /* WMI pending commands exceed the maximum count */ + QCA_WLAN_HANG_WMI_EXCEED_MAX_PENDING_CMDS = 13, +}; + +/** + * enum qca_wlan_vendor_attr_hang - Used by the vendor command + * QCA_NL80211_VENDOR_SUBCMD_HANG. + */ +enum qca_wlan_vendor_attr_hang { + QCA_WLAN_VENDOR_ATTR_HANG_INVALID = 0, + /* + * Reason for the Hang - Represented by enum + * qca_wlan_vendor_hang_reason. + */ + QCA_WLAN_VENDOR_ATTR_HANG_REASON = 1, + + QCA_WLAN_VENDOR_ATTR_HANG_AFTER_LAST, + QCA_WLAN_VENDOR_ATTR_HANG_MAX = + QCA_WLAN_VENDOR_ATTR_HANG_AFTER_LAST - 1, +}; + enum qca_attr_trace_level { QCA_ATTR_TRACE_LEVEL_INVALID = 0, /* |
