mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
qcacmn: Add support for cfr data transport mode
User sets CFR data transport mode using vendor command
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG. By default
CFR data transport mode is relayfs, user uses vendor command
attr QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE to set
transport mode QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS or
QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS.
If user sets QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID
attr in QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG vendor
command then hosts uses RECEIVER_PID to send unicast NL events
for CFR data.
Change-Id: I40e896fad8af24e761fcbedeba761f4a3815f0b8
CRs-Fixed: 2952095
This commit is contained in:
parent
4a070e1f70
commit
3946d9e969
2 changed files with 48 additions and 1 deletions
|
|
@ -302,7 +302,9 @@
|
|||
* @QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG: This command is used to
|
||||
* configure parameters per peer to capture Channel Frequency Response
|
||||
* (CFR) and enable Periodic CFR capture. The attributes for this command
|
||||
* are defined in enum qca_wlan_vendor_peer_cfr_capture_attr.
|
||||
* are defined in enum qca_wlan_vendor_peer_cfr_capture_attr. This command
|
||||
* can also be used to send CFR data from the driver to userspace when
|
||||
* netlink events are used to send CFR data.
|
||||
* @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.
|
||||
|
|
@ -9134,6 +9136,22 @@ enum qca_wlan_vendor_attr_nan_params {
|
|||
QCA_WLAN_VENDOR_ATTR_NAN_PARAMS_AFTER_LAST - 1
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_cfr_data_transport_modes - Defines QCA vendor CFR data
|
||||
* transport modes and is used by attribute
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE as part of vendor command
|
||||
* QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG.
|
||||
* @QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS: Use RELAY FS to send CFR data.
|
||||
* @QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS: Use netlink events to send CFR
|
||||
* data. The data shall be encapsulated within
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_RESP_DATA along withe vendor sub command
|
||||
* QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG as an asynchronous event.
|
||||
*/
|
||||
enum qca_wlan_vendor_cfr_data_transport_modes {
|
||||
QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS = 0,
|
||||
QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS = 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum qca_wlan_vendor_cfr_method - QCA vendor CFR methods used by
|
||||
* attribute QCA_WLAN_VENDOR_ATTR_PEER_CFR_METHOD as part of vendor
|
||||
|
|
@ -9331,6 +9349,27 @@ enum qca_wlan_vendor_cfr_capture_type {
|
|||
* IEEE 802.11(2016) 9.2.4.1.3 Type and Subtype subfields.
|
||||
* This is for CFR version 2 only.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE: Optional (u8)
|
||||
* Userspace can use this attribute to specify the driver about which transport
|
||||
* mode shall be used by the driver to send CFR data to userspace. Uses values
|
||||
* from enum qca_wlan_vendor_cfr_data_transport_modes. When this attribute is
|
||||
* not present, driver shall choose the default transport mechanism which is
|
||||
* QCA_WLAN_VENDOR_CFR_DATA_RELAY_FS.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID: Optional (u32)
|
||||
* Userspace can use this attribute to specify the nl port id of the application
|
||||
* which receives the CFR data and processes it further so that the drivers can
|
||||
* unicast the NL events to a specific application. Optionally included when
|
||||
* QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE is set to
|
||||
* QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS, not required otherwise. The drivers
|
||||
* shall multicast the netlink events when this attribute is not included.
|
||||
*
|
||||
* @QCA_WLAN_VENDOR_ATTR_PEER_CFR_RESP_DATA: Required (NLA_BINARY).
|
||||
* This attribute will be used by the driver to encapsulate and send CFR data
|
||||
* to userspace along with QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG as an
|
||||
* asynchronous event when the driver is configured to send CFR data using NL
|
||||
* events with %QCA_WLAN_VENDOR_CFR_DATA_NETLINK_EVENTS
|
||||
*
|
||||
*/
|
||||
enum qca_wlan_vendor_peer_cfr_capture_attr {
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_CAPTURE_INVALID = 0,
|
||||
|
|
@ -9359,6 +9398,9 @@ enum qca_wlan_vendor_peer_cfr_capture_attr {
|
|||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_MGMT_FILTER = 23,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_CTRL_FILTER = 24,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_GROUP_DATA_FILTER = 25,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_TRANSPORT_MODE = 26,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_DATA_RECEIVER_PID = 27,
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_RESP_DATA = 28,
|
||||
|
||||
/* Keep last */
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_AFTER_LAST,
|
||||
|
|
|
|||
|
|
@ -138,6 +138,8 @@
|
|||
* @QCA_NL80211_VENDOR_SUBCMD_WIFI_FW_STATS_INDEX: Wifi FW stats index
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_MBSSID_TX_VDEV_STATUS_INDEX:
|
||||
* MBSSID TX VDEV status index
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT_INDEX: TWT config index
|
||||
* @QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG_INDEX: CFR data event index
|
||||
*/
|
||||
|
||||
enum qca_nl80211_vendor_subcmds_index {
|
||||
|
|
@ -233,6 +235,9 @@ enum qca_nl80211_vendor_subcmds_index {
|
|||
#ifdef WLAN_SUPPORT_TWT
|
||||
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT_INDEX,
|
||||
#endif
|
||||
#ifdef WLAN_CFR_ENABLE
|
||||
QCA_NL80211_VENDOR_SUBCMD_PEER_CFR_CAPTURE_CFG_INDEX,
|
||||
#endif
|
||||
};
|
||||
|
||||
#if !defined(SUPPORT_WDEV_CFG80211_VENDOR_EVENT_ALLOC) && \
|
||||
|
|
|
|||
Loading…
Reference in a new issue