Define new QCA vendor command for coex priority config
Add QCA_NL80211_VENDOR_SUBCMD_COEX_CONFIG vendor command to set the priorities among different types of traffic of WLAN/BT/Zigbee during coex scenarios. Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
a626fb1070
commit
d554402140
1 changed files with 84 additions and 0 deletions
|
@ -484,6 +484,16 @@ enum qca_radiotap_vendor_ids {
|
|||
* modifications to kernel's TCP parameters which can be referred by
|
||||
* userspace tools. The attributes used with this event are defined in enum
|
||||
* qca_wlan_vendor_attr_throughput_change.
|
||||
*
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_COEX_CONFIG: This command is used to set
|
||||
* priorities among different types of traffic during coex scenarios.
|
||||
* Current supported prioritization is among WLAN/BT/ZIGBEE with different
|
||||
* profiles mentioned in enum qca_coex_config_profiles. The associated
|
||||
* attributes used with this command are defined in enum
|
||||
* qca_vendor_attr_coex_config.
|
||||
*
|
||||
* Based on the config provided, FW will boost the weight and prioritize
|
||||
* the traffic for that subsystem (WLAN/BT/Zigbee).
|
||||
*/
|
||||
enum qca_nl80211_vendor_subcmds {
|
||||
QCA_NL80211_VENDOR_SUBCMD_UNSPEC = 0,
|
||||
|
@ -647,6 +657,7 @@ enum qca_nl80211_vendor_subcmds {
|
|||
QCA_NL80211_VENDOR_SUBCMD_ROAM_SCAN_EVENT = 172,
|
||||
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG = 173,
|
||||
QCA_NL80211_VENDOR_SUBCMD_THROUGHPUT_CHANGE_EVENT = 174,
|
||||
QCA_NL80211_VENDOR_SUBCMD_COEX_CONFIG = 175,
|
||||
};
|
||||
|
||||
enum qca_wlan_vendor_attr {
|
||||
|
@ -6133,4 +6144,77 @@ enum qca_wlan_vendor_attr_throughput_change {
|
|||
QCA_WLAN_VENDOR_ATTR_THROUGHPUT_CHANGE_AFTER_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_coex_config_profiles - This enum defines different types of
|
||||
* traffic streams that can be prioritized one over the other during coex
|
||||
* scenarios.
|
||||
* The types defined in this enum are categorized in the below manner.
|
||||
* 0 - 31 values corresponds to WLAN
|
||||
* 32 - 63 values corresponds to BT
|
||||
* 64 - 95 values corresponds to Zigbee
|
||||
* @QCA_WIFI_STA_DISCOVERY: Prioritize discovery frames for WLAN STA
|
||||
* @QCA_WIFI_STA_CONNECTION: Prioritize connection frames for WLAN STA
|
||||
* @QCA_WIFI_STA_CLASS_3_MGMT: Prioritize class 3 mgmt frames for WLAN STA
|
||||
* @QCA_WIFI_STA_DATA : Prioritize data frames for WLAN STA
|
||||
* @QCA_WIFI_STA_ALL: Priritize all frames for WLAN STA
|
||||
* @QCA_WIFI_SAP_DISCOVERY: Prioritize discovery frames for WLAN SAP
|
||||
* @QCA_WIFI_SAP_CONNECTION: Prioritize connection frames for WLAN SAP
|
||||
* @QCA_WIFI_SAP_CLASS_3_MGMT: Prioritize class 3 mgmt frames for WLAN SAP
|
||||
* @QCA_WIFI_SAP_DATA: Prioritize data frames for WLAN SAP
|
||||
* @QCA_WIFI_SAP_ALL: Prioritize all frames for WLAN SAP
|
||||
* @QCA_BT_A2DP: Prioritize BT A2DP
|
||||
* @QCA_BT_BLE: Prioritize BT BLE
|
||||
* @QCA_BT_SCO: Prioritize BT SCO
|
||||
* @QCA_ZB_LOW: Prioritize Zigbee Low
|
||||
* @QCA_ZB_HIGH: Prioritize Zigbee High
|
||||
*/
|
||||
enum qca_coex_config_profiles {
|
||||
/* 0 - 31 corresponds to WLAN */
|
||||
QCA_WIFI_STA_DISCOVERY = 0,
|
||||
QCA_WIFI_STA_CONNECTION = 1,
|
||||
QCA_WIFI_STA_CLASS_3_MGMT = 2,
|
||||
QCA_WIFI_STA_DATA = 3,
|
||||
QCA_WIFI_STA_ALL = 4,
|
||||
QCA_WIFI_SAP_DISCOVERY = 5,
|
||||
QCA_WIFI_SAP_CONNECTION = 6,
|
||||
QCA_WIFI_SAP_CLASS_3_MGMT = 7,
|
||||
QCA_WIFI_SAP_DATA = 8,
|
||||
QCA_WIFI_SAP_ALL = 9,
|
||||
/* 32 - 63 corresponds to BT */
|
||||
QCA_BT_A2DP = 32,
|
||||
QCA_BT_BLE = 33,
|
||||
QCA_BT_SCO = 34,
|
||||
/* 64 - 95 corresponds to Zigbee */
|
||||
QCA_ZB_LOW = 64,
|
||||
QCA_ZB_HIGH = 65
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_vendor_attr_coex_config - Specifies vendor coex config attributes
|
||||
*
|
||||
* @QCA_VENDOR_ATTR_COEX_CONFIG_PROFILES: This attribute contains variable
|
||||
* length array of 8-bit values from enum qca_coex_config_profiles.
|
||||
* FW will prioritize the profiles in the order given in the array encapsulated
|
||||
* in this attribute.
|
||||
* For example:
|
||||
* -----------------------------------------------------------------------
|
||||
* | 1 | 34 | 32 | 65 |
|
||||
* -----------------------------------------------------------------------
|
||||
* If the attribute contains the values defined in above array then it means
|
||||
* 1) Wifi STA connection has priority over BT_SCO, BT_A2DP and ZIGBEE HIGH.
|
||||
* 2) BT_SCO has priority over BT_A2DP.
|
||||
* 3) BT_A2DP has priority over ZIGBEE HIGH.
|
||||
* Profiles which are not listed in this array shall not be preferred over the
|
||||
* profiles which are listed in the array as a part of this attribute.
|
||||
*/
|
||||
enum qca_vendor_attr_coex_config {
|
||||
QCA_VENDOR_ATTR_COEX_CONFIG_INVALID = 0,
|
||||
QCA_VENDOR_ATTR_COEX_CONFIG_PROFILES = 1,
|
||||
|
||||
/* Keep last */
|
||||
QCA_VENDOR_ATTR_COEX_CONFIG_AFTER_LAST,
|
||||
QCA_VENDOR_ATTR_COEX_CONFIG_MAX =
|
||||
QCA_VENDOR_ATTR_COEX_CONFIG_AFTER_LAST - 1,
|
||||
};
|
||||
|
||||
#endif /* QCA_VENDOR_H */
|
||||
|
|
Loading…
Reference in a new issue