From af8a0815054bf30b4cf966317fa818679c77097f Mon Sep 17 00:00:00 2001 From: Qun Zhang Date: Fri, 1 Feb 2019 11:30:34 +0800 Subject: [PATCH] qcacmn: Add vendor subcmd/attribute to check firmware state Add the support to allow user space applications through cfg80211 vendor command to check if wlan firmware is alive or not. Change-Id: If8346537eea6fe5c4978f6bc973e8d7b420557d9 CRs-Fixed: 2399493 --- os_if/linux/qca_vendor.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/os_if/linux/qca_vendor.h b/os_if/linux/qca_vendor.h index ead97444bb7d..c4517b9d8d9f 100644 --- a/os_if/linux/qca_vendor.h +++ b/os_if/linux/qca_vendor.h @@ -274,6 +274,9 @@ * legacy blob encapsulated within an attribute and can be extended with * additional vendor attributes that can enhance the NAN command * interface. + * @QCA_NL80211_VENDOR_SUBCMD_GET_FW_STATE: Sub command to get firmware state. + * The returned firmware state is specified in the attribute + * QCA_WLAN_VENDOR_ATTR_FW_STATE. * */ @@ -483,6 +486,7 @@ enum qca_nl80211_vendor_subcmds { QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION = 169, QCA_NL80211_VENDOR_SUBCMD_NAN_EXT = 171, QCA_NL80211_VENDOR_SUBCMD_THROUGHPUT_CHANGE_EVENT = 174, + QCA_NL80211_VENDOR_SUBCMD_GET_FW_STATE = 177, }; enum qca_wlan_vendor_tos { @@ -1261,6 +1265,12 @@ enum qca_wlan_vendor_attr { * in user space. */ QCA_WLAN_VENDOR_ATTR_CHAIN_EVM = 41, + /* + * Used in QCA_NL80211_VENDOR_SUBCMD_GET_FW_STATE command to report + * wlan firmware current state. FW state is an unsigned 8 bit value, + * one of the values in enum qca_wlan_vendor_attr_fw_state. + */ + QCA_WLAN_VENDOR_ATTR_FW_STATE = 42, /* keep last */ QCA_WLAN_VENDOR_ATTR_AFTER_LAST, @@ -4744,6 +4754,18 @@ enum qca_wlan_vendor_attr_dmg_rf_sector_type { QCA_WLAN_VENDOR_ATTR_DMG_RF_SECTOR_TYPE_MAX }; +/** + * enum qca_wlan_vendor_attr_fw_state - State of firmware + * + * @QCA_WLAN_VENDOR_ATTR_FW_STATE_ERROR: FW is in bad state + * @QCA_WLAN_VENDOR_ATTR_FW_STATE_ACTIVE: FW is active + */ +enum qca_wlan_vendor_attr_fw_state { + QCA_WLAN_VENDOR_ATTR_FW_STATE_ERROR, + QCA_WLAN_VENDOR_ATTR_FW_STATE_ACTIVE, + QCA_WLAN_VENDOR_ATTR_FW_STATE_MAX +}; + /** * BRP antenna limit mode *