
As part of removing gOclCfg ini, remove code used for it that is no longer needed. Change-Id: I00c32988cb3b852381be9810377aeefdd22454db CRs-Fixed: 2791469
367 linhas
11 KiB
C
367 linhas
11 KiB
C
/*
|
|
* Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
* above copyright notice and this permission notice appear in all
|
|
* copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
|
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
/*
|
|
* This file contains the API definitions for the STA WMI APIs.
|
|
*/
|
|
|
|
#ifndef _WMI_UNIFIED_STA_PARAM_H_
|
|
#define _WMI_UNIFIED_STA_PARAM_H_
|
|
|
|
/**
|
|
* struct sta_keep_alive_params - sta keep alive parameters
|
|
* @vdev_id: vdev id
|
|
* @method: keep alive method
|
|
* @timeperiod: time to keep alive
|
|
* @hostv4addr: host ipv4 address
|
|
* @destv4addr: destination ipv4 address
|
|
* @destmac: destination mac address
|
|
*/
|
|
struct sta_keep_alive_params {
|
|
uint8_t vdev_id;
|
|
uint32_t method;
|
|
uint32_t timeperiod;
|
|
uint8_t hostv4addr[QDF_IPV4_ADDR_SIZE];
|
|
uint8_t destv4addr[QDF_IPV4_ADDR_SIZE];
|
|
uint8_t destmac[QDF_MAC_ADDR_SIZE];
|
|
};
|
|
|
|
/**
|
|
* struct gtx_config_t - GTX config
|
|
* @gtx_rt_mask: for HT and VHT rate masks
|
|
* @gtx_usrcfg: host request for GTX mask
|
|
* @gtx_threshold: PER Threshold (default: 10%)
|
|
* @gtx_margin: PER margin (default: 2%)
|
|
* @gtx_tcpstep: TCP step (default: 1)
|
|
* @gtx_tpcMin: TCP min (default: 5)
|
|
* @gtx_bwmask: BW mask (20/40/80/160 Mhz)
|
|
*/
|
|
struct wmi_gtx_config {
|
|
uint32_t gtx_rt_mask[2];
|
|
uint32_t gtx_usrcfg;
|
|
uint32_t gtx_threshold;
|
|
uint32_t gtx_margin;
|
|
uint32_t gtx_tpcstep;
|
|
uint32_t gtx_tpcmin;
|
|
uint32_t gtx_bwmask;
|
|
};
|
|
|
|
/**
|
|
* struct wlm_latency_level_param - WLM parameters
|
|
* @wlm_latency_level: wlm latency level to set
|
|
* 0 - normal, 1 - moderate, 2 - low, 3 - ultralow
|
|
* @wlm_latency_flags: wlm latency flags to set
|
|
* |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 |
|
|
* +------+------+------+------+------+------+------+-----+-----+
|
|
* | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP |
|
|
* +------+-------------+-------------+-------------------------+
|
|
* | WAL | PS | Roam | Scan |
|
|
*
|
|
* bit 0: Avoid scan request from HLOS if setting
|
|
* bit 1: Skip DFS channel SCAN if setting
|
|
* bit 2-3: Define policy of dwell time/duration for each foreign channel
|
|
* (b2 b3)
|
|
* (0 0 ): Default scan dwell time
|
|
* (0 1 ): Reserve
|
|
* (1 0 ): Shrink off channel dwell time
|
|
* (1 1 ): Reserve
|
|
* bit 4-5: Reserve for scan
|
|
* bit 6-7: Define roaming policy
|
|
* (b6 b7)
|
|
* (0 0 ): Default roaming behavior, allow roaming in all scenarios
|
|
* (0 1 ): Disallow all roaming
|
|
* (1 0 ): Allow roaming when final bmissed
|
|
* (1 1 ): Reserve
|
|
* bit 8-9: Reserve for roaming
|
|
* bit 10: Disable css power collapse if setting
|
|
* bit 11: Disable sys sleep if setting
|
|
* bit 12-31: Reserve for future useage
|
|
* @vdev_id: vdev id
|
|
*/
|
|
struct wlm_latency_level_param {
|
|
uint16_t wlm_latency_level;
|
|
uint32_t wlm_latency_flags;
|
|
uint16_t vdev_id;
|
|
};
|
|
|
|
#define WMI_2_4_GHZ_MAX_FREQ 3000
|
|
|
|
/**
|
|
* struct vdev_ie_info_param - IE info
|
|
* @vdev_id - vdev for which the IE is being sent
|
|
* @ie_id - ID of the IE
|
|
* @length - length of the IE data
|
|
* @data - IE data
|
|
*
|
|
* This structure is used to store the IE information.
|
|
*/
|
|
struct vdev_ie_info_param {
|
|
uint32_t vdev_id;
|
|
uint32_t ie_id;
|
|
uint32_t length;
|
|
uint32_t ie_source;
|
|
uint32_t band;
|
|
uint8_t *data;
|
|
};
|
|
|
|
#define MAX_SAR_LIMIT_ROWS_SUPPORTED 64
|
|
/**
|
|
* struct sar_limit_cmd_row - sar limits row
|
|
* @band_id: Optional param for frequency band
|
|
* See %enum wmi_sar_band_id_flags for possible values
|
|
* @chain_id: Optional param for antenna chain id
|
|
* @mod_id: Optional param for modulation scheme
|
|
* See %enum wmi_sar_mod_id_flags for possible values
|
|
* @limit_value: Mandatory param providing power limits in steps of 0.5 dbm
|
|
* @validity_bitmap: bitmap of valid optional params in sar_limit_cmd_row struct
|
|
* See WMI_SAR_*_VALID_MASK for possible values
|
|
*/
|
|
struct sar_limit_cmd_row {
|
|
uint32_t band_id;
|
|
uint32_t chain_id;
|
|
uint32_t mod_id;
|
|
uint32_t limit_value;
|
|
uint32_t validity_bitmap;
|
|
};
|
|
|
|
/**
|
|
* struct sar_limit_cmd_params - sar limits params
|
|
* @sar_enable: flag to enable SAR
|
|
* See %enum wmi_sar_feature_state_flags for possible values
|
|
* @num_limit_rows: number of items in sar_limits
|
|
* @commit_limits: indicates firmware to start apply new SAR values
|
|
* @sar_limit_row_list: pointer to array of sar limit rows
|
|
*/
|
|
struct sar_limit_cmd_params {
|
|
uint32_t sar_enable;
|
|
uint32_t num_limit_rows;
|
|
uint32_t commit_limits;
|
|
struct sar_limit_cmd_row *sar_limit_row_list;
|
|
};
|
|
|
|
/**
|
|
* struct sar_limit_event_row - sar limits row
|
|
* @band_id: Frequency band.
|
|
* See %enum wmi_sar_band_id_flags for possible values
|
|
* @chain_id: Chain id
|
|
* @mod_id: Modulation scheme
|
|
* See %enum wmi_sar_mod_id_flags for possible values
|
|
* @limit_value: Power limits in steps of 0.5 dbm that is currently active for
|
|
* the given @band_id, @chain_id, and @mod_id
|
|
*/
|
|
struct sar_limit_event_row {
|
|
uint32_t band_id;
|
|
uint32_t chain_id;
|
|
uint32_t mod_id;
|
|
uint32_t limit_value;
|
|
};
|
|
|
|
/**
|
|
* struct sar_limit_event - sar limits params
|
|
* @sar_enable: Current status of SAR enablement.
|
|
* See %enum wmi_sar_feature_state_flags for possible values
|
|
* @num_limit_rows: number of items in sar_limits
|
|
* @sar_limit_row: array of sar limit rows. Only @num_limit_rows
|
|
* should be considered valid.
|
|
*/
|
|
struct sar_limit_event {
|
|
uint32_t sar_enable;
|
|
uint32_t num_limit_rows;
|
|
struct sar_limit_event_row
|
|
sar_limit_row[MAX_SAR_LIMIT_ROWS_SUPPORTED];
|
|
};
|
|
|
|
#define WMI_UNIFIED_MAX_PMKID_LEN 16
|
|
#define WMI_UNIFIED_MAX_PMK_LEN 64
|
|
|
|
/**
|
|
* struct wmi_unified_pmk_cache - used to set del pmkid cache
|
|
* @vdev_id: ID of the vdev being configured
|
|
* @pmk_len: PMK len
|
|
* for big-endian hosts, manual endian conversion will be needed to keep
|
|
* the array values in their original order in spite of the automatic
|
|
* byte-swap applied to WMI messages during download
|
|
* @pmk: PMK array
|
|
* @pmkid_len: PMK ID Len
|
|
* @pmkid: PMK ID Array
|
|
* @bssid: BSSID
|
|
* @ssid: SSID
|
|
* @cache_id: PMK Cache ID
|
|
* @cat_flag: whether (bssid) or (ssid,cache_id) is valid
|
|
* @action_flag: add/delete the entry
|
|
* @is_flush_all: FLAG to indicate PMKSA flush. True if PMKSA cache flush is
|
|
* needed.
|
|
*/
|
|
struct wmi_unified_pmk_cache {
|
|
uint8_t vdev_id;
|
|
uint32_t pmk_len;
|
|
uint8_t pmk[WMI_UNIFIED_MAX_PMK_LEN];
|
|
uint32_t pmkid_len;
|
|
uint8_t pmkid[WMI_UNIFIED_MAX_PMKID_LEN];
|
|
wmi_host_mac_addr bssid;
|
|
struct wlan_ssid ssid;
|
|
uint32_t cache_id;
|
|
uint32_t cat_flag;
|
|
uint32_t action_flag;
|
|
bool is_flush_all;
|
|
};
|
|
|
|
#define WMI_QOS_NUM_AC_MAX 4
|
|
|
|
/**
|
|
* struct aggr_add_ts_param - ADDTS parameters
|
|
* @tspecIdx: TSPEC handler uniquely identifying a TSPEC for a STA in a BSS
|
|
* @tspec: tspec value
|
|
* @status: CDF status
|
|
* @sessionId: session id
|
|
* @vdev_id: vdev id
|
|
*/
|
|
struct aggr_add_ts_param {
|
|
uint16_t tspecIdx;
|
|
struct mac_tspec_ie tspec[WMI_QOS_NUM_AC_MAX];
|
|
QDF_STATUS status[WMI_QOS_NUM_AC_MAX];
|
|
uint8_t sessionId;
|
|
uint8_t vdev_id;
|
|
};
|
|
|
|
#define WMI_PERIODIC_TX_PTRN_MAX_SIZE 1536
|
|
/**
|
|
* struct periodic_tx_pattern - periodic tx pattern
|
|
* @mac_address: MAC Address for the adapter
|
|
* @ucPtrnId: Pattern ID
|
|
* @ucPtrnSize: Pattern size
|
|
* @usPtrnIntervalMs: in ms
|
|
* @ucPattern: Pattern buffer
|
|
*/
|
|
struct periodic_tx_pattern {
|
|
struct qdf_mac_addr mac_address;
|
|
uint8_t ucPtrnId;
|
|
uint16_t ucPtrnSize;
|
|
uint32_t usPtrnIntervalMs;
|
|
uint8_t ucPattern[WMI_PERIODIC_TX_PTRN_MAX_SIZE];
|
|
};
|
|
|
|
/**
|
|
* struct flashing_req_params - led flashing parameter
|
|
* @reqId: request id
|
|
* @pattern_id: pattern identifier. 0: disconnected 1: connected
|
|
* @led_x0: led flashing parameter0
|
|
* @led_x1: led flashing parameter1
|
|
*/
|
|
struct flashing_req_params {
|
|
uint32_t req_id;
|
|
uint32_t pattern_id;
|
|
uint32_t led_x0;
|
|
uint32_t led_x1;
|
|
};
|
|
|
|
/**
|
|
* struct wmi_pcl_chan_weights - Params to get the valid weighed list
|
|
* @pcl_list: channel freq list sorted in preferred order
|
|
* @pcl_len: Length of the PCL
|
|
* @saved_chan_list: Valid channel freq list updated as part of
|
|
* WMA_UPDATE_CHAN_LIST_REQ
|
|
* @saved_num_chan: Length of the valid channel list
|
|
* @weighed_valid_list: Weights of the valid channel list. This will have one
|
|
* to one mapping with valid_chan_list. FW expects channel order and size to be
|
|
* as per the list provided in WMI_SCAN_CHAN_LIST_CMDID.
|
|
* @weight_list: Weights assigned by policy manager
|
|
*/
|
|
struct wmi_pcl_chan_weights {
|
|
uint32_t pcl_list[NUM_CHANNELS];
|
|
uint32_t pcl_len;
|
|
uint32_t saved_chan_list[NUM_CHANNELS];
|
|
uint32_t saved_num_chan;
|
|
uint8_t weighed_valid_list[NUM_CHANNELS];
|
|
uint8_t weight_list[NUM_CHANNELS];
|
|
};
|
|
|
|
/**
|
|
* struct wmi_adaptive_dwelltime_params - the adaptive dwelltime params
|
|
* @vdev_id: vdev id
|
|
* @is_enabled: Adaptive dwell time is enabled/disabled
|
|
* @dwelltime_mode: global default adaptive dwell mode
|
|
* @lpf_weight: weight to calculate the average low pass
|
|
* filter for channel congestion
|
|
* @passive_mon_intval: intval to monitor wifi activity in passive scan in msec
|
|
* @wifi_act_threshold: % of wifi activity used in passive scan 0-100
|
|
*
|
|
*/
|
|
struct wmi_adaptive_dwelltime_params {
|
|
uint32_t vdev_id;
|
|
bool is_enabled;
|
|
enum scan_dwelltime_adaptive_mode dwelltime_mode;
|
|
uint8_t lpf_weight;
|
|
uint8_t passive_mon_intval;
|
|
uint8_t wifi_act_threshold;
|
|
};
|
|
|
|
#define WMI_SCAN_CLIENT_MAX 7
|
|
|
|
/**
|
|
* struct wmi_dbs_scan_sel_params - DBS scan selection params
|
|
* @num_clients: Number of scan clients dutycycle
|
|
* @pdev_id: pdev_id for identifying the MAC
|
|
* @module_id: scan client module id
|
|
* @num_dbs_scans: number of DBS scans
|
|
* @num_non_dbs_scans: number of non-DBS scans
|
|
*/
|
|
struct wmi_dbs_scan_sel_params {
|
|
uint32_t num_clients;
|
|
uint32_t pdev_id;
|
|
uint32_t module_id[WMI_SCAN_CLIENT_MAX];
|
|
uint32_t num_dbs_scans[WMI_SCAN_CLIENT_MAX];
|
|
uint32_t num_non_dbs_scans[WMI_SCAN_CLIENT_MAX];
|
|
};
|
|
|
|
/**
|
|
* struct set_arp_stats - set/reset arp stats
|
|
* @vdev_id: session id
|
|
* @flag: enable/disable stats
|
|
* @pkt_type: type of packet(1 - arp)
|
|
* @ip_addr: subnet ipv4 address in case of encrypted packets
|
|
* @pkt_type_bitmap: pkt bitmap
|
|
* @tcp_src_port: tcp src port for pkt tracking
|
|
* @tcp_dst_port: tcp dst port for pkt tracking
|
|
* @icmp_ipv4: target ipv4 address to track ping packets
|
|
* @reserved: reserved
|
|
*/
|
|
struct set_arp_stats {
|
|
uint32_t vdev_id;
|
|
uint8_t flag;
|
|
uint8_t pkt_type;
|
|
uint32_t ip_addr;
|
|
uint32_t pkt_type_bitmap;
|
|
uint32_t tcp_src_port;
|
|
uint32_t tcp_dst_port;
|
|
uint32_t icmp_ipv4;
|
|
uint32_t reserved;
|
|
};
|
|
|
|
/**
|
|
* struct get_arp_stats - get arp stats from firmware
|
|
* @pkt_type: packet type(1 - ARP)
|
|
* @vdev_id: session id
|
|
*/
|
|
struct get_arp_stats {
|
|
uint8_t pkt_type;
|
|
uint32_t vdev_id;
|
|
};
|
|
|
|
#endif /* _WMI_UNIFIED_STA_PARAM_H_ */
|