From 2b95204288cacbfbff7e8f23293074a2af6a1d29 Mon Sep 17 00:00:00 2001 From: Yu Wang Date: Wed, 16 Oct 2019 09:06:55 +0800 Subject: [PATCH] qcacmn: Add QCA vendor cmd for setting BT coex chain mode To config BT coex chain mode, add a new QCA sub command QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE. This new command has two attributes: 1. QCA_VENDOR_ATTR_COEX_BTC_CHAIN_MODE: u32 attribute. Indicates the BT coex chain mode, are 32-bit values from enum qca_btc_chain_mode. 2. QCA_VENDOR_ATTR_COEX_BTC_CHAIN_MODE_RESTART: flag attribute. If set, vdev should be restarted once BT coex chain mode is updated. Change-Id: I5ae36286a865ca1459550b0a5cf538bf42b8ffa5 CRs-Fixed: 2534770 --- os_if/linux/qca_vendor.h | 44 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/os_if/linux/qca_vendor.h b/os_if/linux/qca_vendor.h index f64c9e3749b8..1e934cb27af9 100644 --- a/os_if/linux/qca_vendor.h +++ b/os_if/linux/qca_vendor.h @@ -366,6 +366,10 @@ * @QCA_NL80211_VENDOR_SUBCMD_ADD_STA_NODE: This vendor subcommand is used to * add the STA node details in driver/firmware. Attributes for this event * are specified in enum qca_wlan_vendor_attr_add_sta_node_params. + * @QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE: This command is used to set BT + * coex chain mode from application/service. + * The attributes defined in enum qca_vendor_attr_btc_chain_mode are used + * to deliver the parameters. */ enum qca_nl80211_vendor_subcmds { @@ -583,6 +587,7 @@ enum qca_nl80211_vendor_subcmds { QCA_NL80211_VENDOR_SUBCMD_OEM_DATA = 182, QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY_EXT = 183, QCA_NL80211_VENDOR_SUBCMD_ADD_STA_NODE = 184, + QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE = 185, }; enum qca_wlan_vendor_tos { @@ -8162,4 +8167,43 @@ enum qca_wlan_vendor_attr_add_sta_node_params { QCA_WLAN_VENDOR_ATTR_ADD_STA_NODE_PARAM_MAX = QCA_WLAN_VENDOR_ATTR_ADD_STA_NODE_PARAM_AFTER_LAST - 1 }; + +/** + * enum qca_btc_chain_mode - Specifies BT coex chain mode. + * This enum defines the valid set of values of BT coex chain mode. + * These values are used by attribute %QCA_VENDOR_ATTR_BTC_CHAIN_MODE of + * %QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE. + * + * @QCA_BTC_CHAIN_SHARED: chains of BT and WLAN 2.4G are shared. + * @QCA_BTC_CHAIN_SEPARATED: chains of BT and WLAN 2.4G are separated. + */ +enum qca_btc_chain_mode { + QCA_BTC_CHAIN_SHARED = 0, + QCA_BTC_CHAIN_SEPARATED = 1, +}; + +/** + * enum qca_vendor_attr_btc_chain_mode - Specifies attributes for BT coex + * chain mode. + * Attributes for data used by QCA_NL80211_VENDOR_SUBCMD_BTC_CHAIN_MODE. + * + * @QCA_VENDOR_ATTR_COEX_BTC_CHAIN_MODE: u32 attribute. + * Indicates the BT coex chain mode, are 32-bit values from + * enum qca_btc_chain_mode. This attribute is mandatory. + * + * @QCA_VENDOR_ATTR_COEX_BTC_CHAIN_MODE_RESTART: flag attribute. + * If set, vdev should be restarted when BT coex chain mode is updated. + * This attribute is optional. + */ +enum qca_vendor_attr_btc_chain_mode { + QCA_VENDOR_ATTR_BTC_CHAIN_MODE_INVALID = 0, + QCA_VENDOR_ATTR_BTC_CHAIN_MODE = 1, + QCA_VENDOR_ATTR_BTC_CHAIN_MODE_RESTART = 2, + + /* Keep last */ + QCA_VENDOR_ATTR_BTC_CHAIN_MODE_LAST, + QCA_VENDOR_ATTR_BTC_CHAIN_MODE_MAX = + QCA_VENDOR_ATTR_BTC_CHAIN_MODE_LAST - 1, +}; + #endif