blob: b3a7236a3b3d4572709f9b8aa8f8b16404ef56ec [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Naveen Rawat01213762018-01-04 17:25:31 -08002 * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28#ifndef WMA_TGT_CFG_H
29#define WMA_TGT_CFG_H
30
31/**
32 * struct wma_tgt_services - target services
33 * @sta_power_save: sta power save
34 * @uapsd: uapsd
35 * @ap_dfs: ap dfs
36 * @en_11ac: enable 11ac
37 * @arp_offload: arp offload
38 * @early_rx: early rx
39 * @pno_offload: pno offload
40 * @beacon_offload: beacon offload
Krunal Sonie6a1cda2017-09-27 15:23:02 -070041 * @lte_coex_ant_share: LTE coex ant share
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080042 * @en_tdls: enable tdls
43 * @en_tdls_offchan: enable tdls offchan
44 * @en_tdls_uapsd_buf_sta: enable sta tdls uapsd buf
45 * @en_tdls_uapsd_sleep_sta: enable sta tdls uapsd sleep
46 * @en_roam_offload: enable roam offload
Krishna Kumaar Natarajand0bbb3c2017-03-13 17:04:58 -070047 * @en_11ax: enable 11ax
Varun Reddy Yeturu62c32652017-10-26 15:32:35 -070048 * @is_fw_mawc_capable: Motion Aided Wireless Connectivity feature
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080049 */
50struct wma_tgt_services {
51 uint32_t sta_power_save;
52 uint32_t uapsd;
53 uint32_t ap_dfs;
54 uint32_t en_11ac;
55 uint32_t arp_offload;
56 uint32_t early_rx;
57#ifdef FEATURE_WLAN_SCAN_PNO
58 bool pno_offload;
59#endif /* FEATURE_WLAN_SCAN_PNO */
60 bool beacon_offload;
mukul sharma72c8b222015-09-04 17:02:01 +053061 bool pmf_offload;
Krunal Sonie6a1cda2017-09-27 15:23:02 -070062 uint32_t lte_coex_ant_share;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080063#ifdef FEATURE_WLAN_TDLS
64 bool en_tdls;
65 bool en_tdls_offchan;
66 bool en_tdls_uapsd_buf_sta;
67 bool en_tdls_uapsd_sleep_sta;
68#endif /* FEATURE_WLAN_TDLS */
69#ifdef WLAN_FEATURE_ROAM_OFFLOAD
70 bool en_roam_offload;
71#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
Krishna Kumaar Natarajand0bbb3c2017-03-13 17:04:58 -070072 bool en_11ax;
Will Huang496b36c2017-07-11 16:38:50 +080073 bool get_peer_info_enabled;
Vignesh Viswanathan731186f2017-09-18 13:47:37 +053074 bool is_fils_roaming_supported;
Varun Reddy Yeturu62c32652017-10-26 15:32:35 -070075 bool is_fw_mawc_capable;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080076};
77
78/**
79 * struct wma_tgt_ht_cap - ht capabalitiy
80 * @mpdu_density: mpdu density
81 * @ht_rx_stbc: ht rx stbc
82 * @ht_tx_stbc: ht tx stbc
83 * @ht_rx_ldpc: ht rx ldpc
84 * @ht_sgi_20: ht sgi 20
85 * @ht_sgi_40: ht sgi 40
86 * @num_rf_chains: num of rf chains
87 */
88struct wma_tgt_ht_cap {
89 uint32_t mpdu_density;
90 bool ht_rx_stbc;
91 bool ht_tx_stbc;
92 bool ht_rx_ldpc;
93 bool ht_sgi_20;
94 bool ht_sgi_40;
95 uint32_t num_rf_chains;
96};
97
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080098/**
99 * struct wma_tgt_vht_cap - vht capabalities
100 * @vht_max_mpdu: vht max mpdu
101 * @supp_chan_width: supported channel width
102 * @vht_rx_ldpc: vht rx ldpc
103 * @vht_short_gi_80: vht short gi 80
104 * @vht_short_gi_160: vht short gi 160
105 * @vht_tx_stbc: vht tx stbc
106 * @vht_rx_stbc: vht rx stbc
107 * @vht_su_bformer: vht su bformer
108 * @vht_su_bformee: vht su bformee
109 * @vht_mu_bformer: vht mu bformer
110 * @vht_mu_bformee: vht mu bformee
111 * @vht_max_ampdu_len_exp: vht max ampdu len exp
112 * @vht_txop_ps: vht txop ps
113 */
114struct wma_tgt_vht_cap {
115 uint32_t vht_max_mpdu;
116 uint32_t supp_chan_width;
117 uint32_t vht_rx_ldpc;
118 uint32_t vht_short_gi_80;
119 uint32_t vht_short_gi_160;
120 uint32_t vht_tx_stbc;
121 uint32_t vht_rx_stbc;
122 uint32_t vht_su_bformer;
123 uint32_t vht_su_bformee;
124 uint32_t vht_mu_bformer;
125 uint32_t vht_mu_bformee;
126 uint32_t vht_max_ampdu_len_exp;
127 uint32_t vht_txop_ps;
128};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800129
130/**
131 * struct wma_dfs_radar_ind - dfs radar indication
132 * @ieee_chan_number: ieee channel number
133 * @chan_freq: channel freq
134 * @dfs_radar_status: dfs radar status
135 */
136struct wma_dfs_radar_ind {
137 uint8_t ieee_chan_number;
138 uint32_t chan_freq;
139 uint32_t dfs_radar_status;
140};
141
142/**
143 * struct wma_tgt_cfg - target config
144 * @target_fw_version: target fw version
Sandeep Puligilla3d6a8e22016-10-11 18:57:14 -0700145 * @target_fw_vers_ext: target fw extended sub version
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800146 * @band_cap: band capability
147 * @reg_domain: reg domain
148 * @eeprom_rd_ext: eeprom rd ext
149 * @hw_macaddr: hw mcast addr
150 * @services: struct wma_tgt_services
151 * @ht_cap: struct wma_tgt_ht_cap
152 * @vht_cap: struct wma_tgt_vht_cap
153 * @max_intf_count: max interface count
154 * @lpss_support: lpass support
Ryan Hsu3c8f79f2015-12-02 16:45:09 -0800155 * @egap_support: enhanced green ap support
Deepak Dhamdhere13230d32016-05-26 00:46:53 -0700156 * @nan_datapath_enabled: nan data path support
Anurag Chouhan04dbf6d2016-09-08 15:32:52 +0530157 * @bool is_ra_rate_limit_enabled: RA filter support
Krishna Kumaar Natarajand0bbb3c2017-03-13 17:04:58 -0700158 * @he_cap: HE capability received from FW
Arif Hussain759a0232017-03-20 13:17:18 -0700159 * @dfs_cac_offload: dfs and cac timer offloaded
Nachiket Kukade8b4bfd82017-05-25 18:34:48 +0530160 * @tx_bfee_8ss_enabled: Tx Beamformee support for 8x8
Rajeev Kumar Sirasanagandla996e5292016-11-22 21:20:33 +0530161 * @rcpi_enabled: for checking rcpi support
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800162 */
163struct wma_tgt_cfg {
164 uint32_t target_fw_version;
Sandeep Puligilla3d6a8e22016-10-11 18:57:14 -0700165 uint32_t target_fw_vers_ext;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800166 uint8_t band_cap;
167 uint32_t reg_domain;
168 uint32_t eeprom_rd_ext;
Anurag Chouhan6d760662016-02-20 16:05:43 +0530169 struct qdf_mac_addr hw_macaddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800170 struct wma_tgt_services services;
171 struct wma_tgt_ht_cap ht_cap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800172 struct wma_tgt_vht_cap vht_cap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800173 uint8_t max_intf_count;
174#ifdef WLAN_FEATURE_LPSS
175 uint8_t lpss_support;
176#endif
177 uint8_t ap_arpns_support;
Himanshu Agarwalb229a142017-12-21 10:16:45 +0530178#ifdef WLAN_SUPPORT_GREEN_AP
Ryan Hsu3c8f79f2015-12-02 16:45:09 -0800179 bool egap_support;
180#endif
Krishna Kumaar Natarajan1ae49112015-11-24 21:43:22 -0800181 uint32_t fine_time_measurement_cap;
Arun Khandavalli2476ef52016-04-26 20:19:43 +0530182 bool bpf_enabled;
Anurag Chouhan04dbf6d2016-09-08 15:32:52 +0530183#ifdef FEATURE_WLAN_RA_FILTERING
184 bool is_ra_rate_limit_enabled;
185#endif
Deepak Dhamdhere13230d32016-05-26 00:46:53 -0700186#ifdef WLAN_FEATURE_NAN_DATAPATH
187 bool nan_datapath_enabled;
188#endif
Naveen Rawat64e477e2016-05-20 10:34:56 -0700189 bool sub_20_support;
Rajeev Kumar Sirasanagandla47873002016-09-09 13:46:09 +0530190 uint16_t wmi_max_len;
Krishna Kumaar Natarajand0bbb3c2017-03-13 17:04:58 -0700191#ifdef WLAN_FEATURE_11AX
Naveen Rawatd8feac12017-09-08 15:08:39 -0700192 tDot11fIEhe_cap he_cap;
Naveen Rawat01213762018-01-04 17:25:31 -0800193 tDot11fIEppe_threshold ppet_2g;
194 tDot11fIEppe_threshold ppet_5g;
Krishna Kumaar Natarajand0bbb3c2017-03-13 17:04:58 -0700195#endif
Arif Hussain759a0232017-03-20 13:17:18 -0700196 bool dfs_cac_offload;
Nachiket Kukade8b4bfd82017-05-25 18:34:48 +0530197 bool tx_bfee_8ss_enabled;
Rajeev Kumar Sirasanagandla996e5292016-11-22 21:20:33 +0530198 bool rcpi_enabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800199};
200#endif /* WMA_TGT_CFG_H */