1 /*
2  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for
6  * any purpose with or without fee is hereby granted, provided that the
7  * above copyright notice and this permission notice appear in all
8  * copies.
9  *
10  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17  * PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #ifndef __WLAN_POLICY_MGR_PUBLIC_STRUCT_H
21 #define __WLAN_POLICY_MGR_PUBLIC_STRUCT_H
22 
23 /**
24  * DOC: wlan_policy_mgr_public_struct.h
25  *
26  * Concurrenct Connection Management entity
27  */
28 
29 /* Include files */
30 #include <wmi_unified_api.h>
31 
32 /*
33  *  Some max value greater than the max length of the channel list
34  */
35 #define MAX_WEIGHT_OF_PCL_CHANNELS 255
36 /*
37  *  Some fixed weight difference between the groups
38  */
39 #define PCL_GROUPS_WEIGHT_DIFFERENCE 20
40 
41 /*
42  * Currently max, only 3 groups are possible as per 'enum policy_mgr_pcl_type'.
43  * i.e., in a PCL only 3 groups of channels can be present
44  * e.g., SCC channel on 2.4 Ghz, SCC channel on 5 Ghz & 5 Ghz channels.
45  * Group 1 has highest priority, group 2 has the next higher priority
46  * and so on.
47  */
48 #define WEIGHT_OF_GROUP1_PCL_CHANNELS MAX_WEIGHT_OF_PCL_CHANNELS
49 #define WEIGHT_OF_GROUP2_PCL_CHANNELS \
50 	(WEIGHT_OF_GROUP1_PCL_CHANNELS - PCL_GROUPS_WEIGHT_DIFFERENCE)
51 #define WEIGHT_OF_GROUP3_PCL_CHANNELS \
52 	(WEIGHT_OF_GROUP2_PCL_CHANNELS - PCL_GROUPS_WEIGHT_DIFFERENCE)
53 #define WEIGHT_OF_GROUP4_PCL_CHANNELS \
54 	(WEIGHT_OF_GROUP3_PCL_CHANNELS - PCL_GROUPS_WEIGHT_DIFFERENCE)
55 
56 #define WEIGHT_OF_NON_PCL_CHANNELS 1
57 #define WEIGHT_OF_DISALLOWED_CHANNELS 0
58 
59 #define MAX_MAC 2
60 
61 #ifdef FEATURE_FOURTH_CONNECTION
62 #define MAX_NUMBER_OF_CONC_CONNECTIONS 4
63 #else
64 #define MAX_NUMBER_OF_CONC_CONNECTIONS 3
65 #endif
66 
67 #ifdef WLAN_FEATURE_11BE_MLO
68 /* Max MLO VDEVS for disabled link table */
69 #define MAX_NUMBER_OF_DISABLE_LINK WLAN_UMAC_MLO_MAX_VDEVS
70 #endif
71 
72 /* BIT 0 for low latency and BIT 1 for HIGH TPUT */
73 #define PM_VDEV_TRAFFIC_LOW_LATENCY 0x1
74 #define PM_VDEV_TRAFFIC_HIGH_TPUT 0x2
75 
76 /* Policy manager default request id */
77 #define POLICY_MGR_DEF_REQ_ID 0
78 
79 typedef int (*send_mode_change_event_cb)(void);
80 
81 /**
82  * enum sap_csa_reason_code - SAP channel switch reason code
83  * @CSA_REASON_UNKNOWN: Unknown reason
84  * @CSA_REASON_STA_CONNECT_DFS_TO_NON_DFS: STA connection from DFS to NON DFS.
85  * @CSA_REASON_USER_INITIATED: User initiated form north bound.
86  * @CSA_REASON_PEER_ACTION_FRAME: Action frame received on sta iface.
87  * @CSA_REASON_PRE_CAC_SUCCESS: Pre CAC success.
88  * @CSA_REASON_CONCURRENT_STA_CHANGED_CHANNEL: concurrent sta changed channel.
89  * @CSA_REASON_UNSAFE_CHANNEL: Unsafe channel.
90  * @CSA_REASON_LTE_COEX: LTE coex.
91  * @CSA_REASON_CONCURRENT_NAN_EVENT: NAN concurrency.
92  * @CSA_REASON_BAND_RESTRICTED: band disabled or re-enabled
93  * @CSA_REASON_DCS: DCS
94  * @CSA_REASON_CHAN_DISABLED: channel is disabled
95  * @CSA_REASON_CHAN_PASSIVE: channel is passive
96  * @CSA_REASON_GO_BSS_STARTED: P2P go started
97  * @CSA_REASON_SAP_ACS: 2.4 GHz preferred SAP ACS starting
98  * @CSA_REASON_SAP_FIX_CH_CONC_WITH_GO: SAP fix channel start
99  * @CSA_REASON_CONCURRENT_LL_LT_SAP_EVENT: LL_LT_SAP concurrency
100  *  and move GO to other band
101  */
102 enum sap_csa_reason_code {
103 	CSA_REASON_UNKNOWN,
104 	CSA_REASON_STA_CONNECT_DFS_TO_NON_DFS,
105 	CSA_REASON_USER_INITIATED,
106 	CSA_REASON_PEER_ACTION_FRAME,
107 	CSA_REASON_PRE_CAC_SUCCESS,
108 	CSA_REASON_CONCURRENT_STA_CHANGED_CHANNEL,
109 	CSA_REASON_UNSAFE_CHANNEL,
110 	CSA_REASON_LTE_COEX,
111 	CSA_REASON_CONCURRENT_NAN_EVENT,
112 	CSA_REASON_BAND_RESTRICTED,
113 	CSA_REASON_DCS,
114 	CSA_REASON_CHAN_DISABLED,
115 	CSA_REASON_CHAN_PASSIVE,
116 	CSA_REASON_GO_BSS_STARTED,
117 	CSA_REASON_SAP_ACS,
118 	CSA_REASON_SAP_FIX_CH_CONC_WITH_GO,
119 	CSA_REASON_CONCURRENT_LL_LT_SAP_EVENT
120 };
121 
122 /*
123  * enum link_control_flags: This enum is used for setting
124  * mlo_control_flags by api policy_mgr_mlo_sta_set_nlink.
125  * @link_ctrl_f_overwrite_active_bitmap: indicate overwrite all earlier
126  * force_active bitmaps. Used with MLO_LINK_FORCE_MODE_ACTIVE or
127  * MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE
128  * @link_ctrl_f_overwrite_inactive_bitmap: indicate overwrite all earlier
129  * force_inactive bitmaps. Used with MLO_LINK_FORCE_MODE_INACTIVE or
130  * MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE.
131  * @link_ctrl_f_dynamic_force_link_num: indicate fw to use force link number
132  * instead of force link bitmaps. Used with MLO_LINK_FORCE_MODE_ACTIVE_NUM.
133  * MLO_LINK_FORCE_MODE_INACTIVE_NUM, MLO_LINK_FORCE_MODE_NO_FORCE.
134  * @link_ctrl_f_post_re_evaluate: run link state check again after command
135  * response handled.
136  */
137 enum link_control_flags {
138 	link_ctrl_f_overwrite_active_bitmap =   1 << 0,
139 	link_ctrl_f_overwrite_inactive_bitmap = 1 << 1,
140 	link_ctrl_f_dynamic_force_link_num =    1 << 2,
141 	link_ctrl_f_post_re_evaluate =          1 << 3,
142 };
143 
144 /**
145  * enum hw_mode_ss_config - Possible spatial stream configuration
146  * @HW_MODE_SS_0x0: Unused Tx and Rx of MAC
147  * @HW_MODE_SS_1x1: 1 Tx SS and 1 Rx SS
148  * @HW_MODE_SS_2x2: 2 Tx SS and 2 Rx SS
149  * @HW_MODE_SS_3x3: 3 Tx SS and 3 Rx SS
150  * @HW_MODE_SS_4x4: 4 Tx SS and 4 Rx SS
151  *
152  * Note: Right now only 1x1 and 2x2 are being supported. Other modes should
153  * be added when supported. Asymmetric configuration like 1x2, 2x1 are also
154  * not supported now. But, they are still valid. Right now, Tx/Rx SS support is
155  * 4 bits long. So, we can go upto 15x15
156  */
157 enum hw_mode_ss_config {
158 	HW_MODE_SS_0x0,
159 	HW_MODE_SS_1x1,
160 	HW_MODE_SS_2x2,
161 	HW_MODE_SS_3x3,
162 	HW_MODE_SS_4x4,
163 };
164 
165 /**
166  * enum hw_mode_dbs_capab - DBS HW mode capability
167  * @HW_MODE_DBS_NONE: Non DBS capable
168  * @HW_MODE_DBS: DBS capable
169  */
170 enum hw_mode_dbs_capab {
171 	HW_MODE_DBS_NONE,
172 	HW_MODE_DBS,
173 };
174 
175 /**
176  * enum hw_mode_agile_dfs_capab - Agile DFS HW mode capability
177  * @HW_MODE_AGILE_DFS_NONE: Non Agile DFS capable
178  * @HW_MODE_AGILE_DFS: Agile DFS capable
179  */
180 enum hw_mode_agile_dfs_capab {
181 	HW_MODE_AGILE_DFS_NONE,
182 	HW_MODE_AGILE_DFS,
183 };
184 
185 /**
186  * enum hw_mode_sbs_capab - SBS HW mode capability
187  * @HW_MODE_SBS_NONE: Non SBS capable
188  * @HW_MODE_SBS: SBS capable
189  */
190 enum hw_mode_sbs_capab {
191 	HW_MODE_SBS_NONE,
192 	HW_MODE_SBS,
193 };
194 
195 /**
196  * enum hw_mode_emlsr_capab - EMLSR HW mode capability
197  * @HW_MODE_EMLSR_NONE: Non EMLSR capable
198  * @HW_MODE_EMLSR: EMLSR capable
199  */
200 enum hw_mode_emlsr_capab {
201 	HW_MODE_EMLSR_NONE,
202 	HW_MODE_EMLSR,
203 };
204 
205 /**
206  * enum hw_mode_mac_band_cap - mac band capability
207  * @HW_MODE_MAC_BAND_NONE: No band requirement.
208  * @HW_MODE_MAC_BAND_2G: 2G band supported.
209  * @HW_MODE_MAC_BAND_5G: 5G band supported.
210  *
211  * To add HW_MODE_MAC_BAND_NONE value to help to
212  * match the HW DBS mode in hw mode list.
213  * Other enum values should match with WMI header:
214  * typedef enum {
215  *   WLAN_2G_CAPABILITY = 0x1,
216  *   WLAN_5G_CAPABILITY = 0x2,
217  * } WLAN_BAND_CAPABILITY;
218  */
219 enum hw_mode_mac_band_cap {
220 	HW_MODE_MAC_BAND_NONE = 0,
221 	HW_MODE_MAC_BAND_2G = WLAN_2G_CAPABILITY,
222 	HW_MODE_MAC_BAND_5G = WLAN_5G_CAPABILITY,
223 };
224 
225 /**
226  * enum force_1x1_type - enum to specify the type of forced 1x1 ini provided.
227  * @FORCE_1X1_DISABLED: even if the AP is present in OUI, 1x1 will not be forced
228  * @FORCE_1X1_ENABLED_FOR_AS: If antenna sharing supported, then only do 1x1.
229  * @FORCE_1X1_ENABLED_FORCED: If AP present in OUI, force 1x1 connection.
230  */
231 enum force_1x1_type {
232 	FORCE_1X1_DISABLED,
233 	FORCE_1X1_ENABLED_FOR_AS,
234 	FORCE_1X1_ENABLED_FORCED,
235 };
236 
237 /**
238  * enum policy_mgr_pcl_group_id - Identifies the pcl groups to be used
239  * @POLICY_MGR_PCL_GROUP_ID1_ID2: Use weights of group1 and group2
240  * @POLICY_MGR_PCL_GROUP_ID2_ID3: Use weights of group2 and group3
241  * @POLICY_MGR_PCL_GROUP_ID3_ID4: Use weights of group3 and group4
242  *
243  * Since maximum of three groups are possible, this will indicate which
244  * PCL group needs to be used.
245  */
246 enum policy_mgr_pcl_group_id {
247 	POLICY_MGR_PCL_GROUP_ID1_ID2,
248 	POLICY_MGR_PCL_GROUP_ID2_ID3,
249 	POLICY_MGR_PCL_GROUP_ID3_ID4,
250 };
251 
252 /**
253  * enum policy_mgr_pcl_channel_order - Order in which the PCL is requested
254  * @POLICY_MGR_PCL_ORDER_NONE: no order
255  * @POLICY_MGR_PCL_ORDER_24G_THEN_5G: 2.4 Ghz channel followed by 5 Ghz channel
256  * @POLICY_MGR_PCL_ORDER_5G_THEN_2G: 5 Ghz channel followed by 2.4 Ghz channel
257  * @POLICY_MGR_PCL_ORDER_2G: 2G channels
258  * @POLICY_MGR_PCL_ORDER_5G: 5G channels
259  * @POLICY_MGR_PCL_ORDER_SCC_5G_LOW_5G_LOW: 5G Low SCC frequency followed by
260  * 5G low band i.e 5G freq < sbs cutoff freq
261  * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH: 5G High SCC frequency followed by
262  * 5G High band i.e 5G freq > sbs cutoff freq
263  * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH_SCC_5G_LOW: 5 GHz High SCC
264  * frequency followed by 5G High band i.e 5G freq > sbs cutoff freq, add 5 GHz
265  * Low SCC frequency
266  * @POLICY_MGR_PCL_ORDER_SCC_5G_LOW: SCC channel on 5G low
267  * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH: SCC channel on 5G high
268  * @POLICY_MGR_PCL_ORDER_SCC_5G_LOW_MCC_5G_HIGH: SCC channels on 5G low
269  * followed by MCC channels on 5G high
270  * @POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_MCC_5G_LOW: SCC channels on 5G high
271  * followed by MCC channels on 5G low
272  *
273  * Order in which the PCL is requested
274  */
275 enum policy_mgr_pcl_channel_order {
276 	POLICY_MGR_PCL_ORDER_NONE,
277 	POLICY_MGR_PCL_ORDER_24G_THEN_5G,
278 	POLICY_MGR_PCL_ORDER_5G_THEN_2G,
279 	POLICY_MGR_PCL_ORDER_2G,
280 	POLICY_MGR_PCL_ORDER_5G,
281 	POLICY_MGR_PCL_ORDER_SCC_5G_LOW_5G_LOW,
282 	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH,
283 	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_5G_HIGH_SCC_5G_LOW,
284 	POLICY_MGR_PCL_ORDER_SCC_5G_LOW,
285 	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH,
286 	POLICY_MGR_PCL_ORDER_SCC_5G_LOW_MCC_5G_HIGH,
287 	POLICY_MGR_PCL_ORDER_SCC_5G_HIGH_MCC_5G_LOW,
288 };
289 
290 /**
291  * enum policy_mgr_pcl_band_priority - Band priority between 5G and 6G channel
292  * @POLICY_MGR_PCL_BAND_5G_THEN_6G: 5 Ghz channel followed by 6 Ghz channel
293  * @POLICY_MGR_PCL_BAND_6G_THEN_5G: 6 Ghz channel followed by 5 Ghz channel
294  *
295  *  Band priority between 5G and 6G
296  */
297 enum policy_mgr_pcl_band_priority {
298 	POLICY_MGR_PCL_BAND_5G_THEN_6G = 0,
299 	POLICY_MGR_PCL_BAND_6G_THEN_5G,
300 };
301 
302 /**
303  * enum policy_mgr_max_rx_ss - Maximum number of receive spatial streams
304  * @POLICY_MGR_RX_NSS_1: Receive Nss = 1
305  * @POLICY_MGR_RX_NSS_2: Receive Nss = 2
306  * @POLICY_MGR_RX_NSS_3: Receive Nss = 3
307  * @POLICY_MGR_RX_NSS_4: Receive Nss = 4
308  * @POLICY_MGR_RX_NSS_5: Receive Nss = 5
309  * @POLICY_MGR_RX_NSS_6: Receive Nss = 6
310  * @POLICY_MGR_RX_NSS_7: Receive Nss = 7
311  * @POLICY_MGR_RX_NSS_8: Receive Nss = 8
312  * @POLICY_MGR_RX_NSS_MAX: maximum enumeration
313  *
314  * Indicates the maximum number of spatial streams that the STA can receive
315  */
316 enum policy_mgr_max_rx_ss {
317 	POLICY_MGR_RX_NSS_1 = 0,
318 	POLICY_MGR_RX_NSS_2 = 1,
319 	POLICY_MGR_RX_NSS_3 = 2,
320 	POLICY_MGR_RX_NSS_4 = 3,
321 	POLICY_MGR_RX_NSS_5 = 4,
322 	POLICY_MGR_RX_NSS_6 = 5,
323 	POLICY_MGR_RX_NSS_7 = 6,
324 	POLICY_MGR_RX_NSS_8 = 7,
325 	POLICY_MGR_RX_NSS_MAX,
326 };
327 
328 /**
329  * enum policy_mgr_chain_mode - Chain Mask tx & rx combination.
330  *
331  * @POLICY_MGR_ONE_ONE: One for Tx, One for Rx
332  * @POLICY_MGR_TWO_TWO: Two for Tx, Two for Rx
333  * @POLICY_MGR_MAX_NO_OF_CHAIN_MODE: Max place holder
334  *
335  * These are generic IDs that identify the various roles
336  * in the software system
337  */
338 enum policy_mgr_chain_mode {
339 	POLICY_MGR_ONE_ONE = 0,
340 	POLICY_MGR_TWO_TWO,
341 	POLICY_MGR_MAX_NO_OF_CHAIN_MODE
342 };
343 
344 /**
345  * enum policy_mgr_conc_priority_mode - t/p, powersave, latency.
346  *
347  * @PM_THROUGHPUT: t/p is the priority
348  * @PM_POWERSAVE: powersave is the priority
349  * @PM_LATENCY: latency is the priority
350  * @PM_MAX_CONC_PRIORITY_MODE: Max place holder
351  *
352  * These are generic IDs that identify the various roles
353  * in the software system
354  */
355 enum policy_mgr_conc_priority_mode {
356 	PM_THROUGHPUT = 0,
357 	PM_POWERSAVE,
358 	PM_LATENCY,
359 	PM_MAX_CONC_PRIORITY_MODE
360 };
361 
362 /**
363  * enum policy_mgr_con_mode - concurrency mode for PCL table
364  *
365  * @PM_STA_MODE: station mode
366  * @PM_SAP_MODE: SAP mode
367  * @PM_P2P_CLIENT_MODE: P2P client mode
368  * @PM_P2P_GO_MODE: P2P Go mode
369  * @PM_NDI_MODE: NDI mode
370  * @PM_NAN_DISC_MODE: NAN Discovery mode
371  * @PM_LL_LT_SAP_MODE: Low latency low throughput SAP
372  * @PM_MAX_NUM_OF_MODE: max value place holder
373  */
374 enum policy_mgr_con_mode {
375 	PM_STA_MODE = 0,
376 	PM_SAP_MODE,
377 	PM_P2P_CLIENT_MODE,
378 	PM_P2P_GO_MODE,
379 	PM_NDI_MODE,
380 	PM_NAN_DISC_MODE,
381 	PM_LL_LT_SAP_MODE,
382 	PM_MAX_NUM_OF_MODE
383 };
384 
385 /**
386  * enum policy_mgr_mac_use - MACs that are used
387  * @POLICY_MGR_MAC0: Only MAC0 is used
388  * @POLICY_MGR_MAC1: Only MAC1 is used
389  * @POLICY_MGR_MAC0_AND_MAC1: Both MAC0 and MAC1 are used
390  */
391 enum policy_mgr_mac_use {
392 	POLICY_MGR_MAC0 = 1,
393 	POLICY_MGR_MAC1 = 2,
394 	POLICY_MGR_MAC0_AND_MAC1 = 3
395 };
396 
397 /**
398  * enum policy_mgr_pcl_type - Various types of Preferred channel list (PCL).
399  *
400  * @PM_NONE: No channel preference
401  * @PM_24G: 2.4 Ghz channels only
402  * @PM_5G: 5 Ghz channels only
403  * @PM_SCC_CH: SCC channel only
404  * @PM_MCC_CH: MCC channels only
405  * @PM_SBS_CH: SBS channels only
406  * @PM_SCC_CH_24G: SCC channel & 2.4 Ghz channels
407  * @PM_SCC_CH_5G: SCC channel & 5 Ghz channels
408  * @PM_24G_SCC_CH: 2.4 Ghz channels & SCC channel
409  * @PM_5G_SCC_CH: 5 Ghz channels & SCC channel
410  * @PM_SCC_ON_5_CH_5G: 5 Ghz SCC channel & 5 Ghz channels
411  * @PM_SCC_ON_5_SCC_ON_24_24G: SCC channel on 5 Ghz, SCC
412  *	channel on 2.4 Ghz & 2.4 Ghz channels
413  * @PM_SCC_ON_5_SCC_ON_24_5G: SCC channel on 5 Ghz, SCC channel
414  *	on 2.4 Ghz & 5 Ghz channels
415  * @PM_SCC_ON_5_5G_24G: SCC channel on 5 Ghz, 5 Ghz channels & 2.4 Ghz channels
416  * @PM_SCC_ON_5_5G_SCC_ON_24G: SCC channel on 5 Ghz, 5 Ghz channels &
417  *	SCC channel on 2.4 Ghz
418  * @PM_SCC_ON_24_SCC_ON_5_24G: SCC channel on 2.4 Ghz, SCC
419  *	channel on 5 Ghz & 2.4 Ghz channels
420  * @PM_SCC_ON_24_SCC_ON_5_5G: SCC channel on 2.4 Ghz, SCC
421  *	channel on 5 Ghz & 5 Ghz channels
422  * @PM_SCC_ON_24_CH_24G: SCC channel on 2.4 GHz & 2.4 GHz channels
423  * @PM_SCC_ON_5_SCC_ON_24: SCC channel on 5 Ghz, SCC channel on
424  *	2.4 Ghz
425  * @PM_SCC_ON_24_SCC_ON_5: SCC channel on 2.4 Ghz, SCC channel
426  *	on 5 Ghz
427  * @PM_MCC_CH_24G: MCC channels & 2.4 Ghz channels
428  * @PM_MCC_CH_5G:  MCC channels & 5 Ghz channels
429  * @PM_24G_MCC_CH: 2.4 Ghz channels & MCC channels
430  * @PM_5G_MCC_CH: 5 Ghz channels & MCC channels
431  * @PM_SBS_CH_5G: SBS channels & rest of 5 Ghz channels
432  * @PM_24G_SCC_CH_SBS_CH: 2.4 Ghz channels, SCC channel & SBS channels
433  * @PM_24G_SCC_CH_SBS_CH_5G: 2.4 Ghz channels, SCC channel,
434  *      SBS channels & rest of the 5G channels
435  * @PM_24G_SBS_CH_MCC_CH: 2.4 Ghz channels, SBS channels & MCC channels
436  * @PM_SBS_CH_24G_SCC_CH:
437  * @PM_SBS_CH_SCC_CH_24G:
438  * @PM_SCC_CH_SBS_CH_24G:
439  * @PM_SBS_CH_SCC_CH_5G_24G:
440  * @PM_SCC_CH_MCC_CH_SBS_CH_24G:
441  * @PM_SBS_CH_2G: SBS channels & 2.4 Ghz channels
442  * @PM_SCC_ON_5G_LOW_5G_LOW_PLUS_SHARED_2G: 5 GHz low SCC channel followed by
443  * 5 GHz low frequencies, add 2.4 GHz if its shared with 5 GHz low
444  * @PM_SCC_ON_5G_HIGH_5G_HIGH_PLUS_SHARED_2G: 5GHZ high SCC channel followed by
445  * 5 GHz high frequencies, add 2.4 GHZ if its shared with 5GHz high
446  * @PM_SCC_ON_5G_HIGH_5G_HIGH_SCC_ON_5G_LOW_PLUS_SHARED_2G: 5GHZ high SCC
447  * channel followed by 5 GHz high frequencies and 5 GHz low SCC channel,
448  * add 2.4 GHZ if its shared with 5GHz high
449  * @PM_SBS_CH_MCC_CH: SBS channels followed by MCC channels
450  * @PM_SBS_5G_MCC_24G: SBS channels, 5G MCC channels and 2.4GHz channels
451  * @PM_SCC_ON_24G: SCC channels on 2.4 Ghz
452  * @PM_SCC_ON_5G_LOW: SCC channels on 5G low frequencies
453  * @PM_SCC_ON_5G_HIGH: SCC channels on 5G high frequencies
454  * @PM_SBS_CH_MCC_CH_SCC_ON_24_24G: SBS channels followed by MCC channels
455  * followed by SCC channels on 2.4 GHz followed by 2.4 GHz channels
456  * @PM_5G_24G: 5 GHz channels, followed by 2.4 GHz channels
457  * @PM_MCC_CH_SCC_ON_24G: MCC chanenls followed by SCC channels on 2.4 Ghz
458  * @PM_SCC_ON_5G_LOW_MCC_ON_5G_HIGH: SCC channels on 5G low frequencies
459  * followed by MCC channels on 5G high frequencies
460  * @PM_SCC_ON_5G_HIGH_MCC_ON_5G_LOW: SCC channels on 5G high frequencies
461  * followed by MCC channels on 5G low frequencies
462  *
463  * @PM_MAX_PCL_TYPE: Max place holder
464  *
465  * These are generic IDs that identify the various roles
466  * in the software system
467  */
468 enum policy_mgr_pcl_type {
469 	PM_NONE = 0,
470 	PM_24G,
471 	PM_5G,
472 	PM_SCC_CH,
473 	PM_MCC_CH,
474 	PM_SBS_CH,
475 	PM_SCC_CH_24G,
476 	PM_SCC_CH_5G,
477 	PM_24G_SCC_CH,
478 	PM_5G_SCC_CH,
479 	PM_SCC_ON_5_CH_5G,
480 	PM_SCC_ON_5_SCC_ON_24_24G,
481 	PM_SCC_ON_5_SCC_ON_24_5G,
482 	PM_SCC_ON_5_5G_24G,
483 	PM_SCC_ON_5_5G_SCC_ON_24G,
484 	PM_SCC_ON_24_SCC_ON_5_24G,
485 	PM_SCC_ON_24_SCC_ON_5_5G,
486 	PM_SCC_ON_24_CH_24G,
487 	PM_SCC_ON_5_SCC_ON_24,
488 	PM_SCC_ON_24_SCC_ON_5,
489 	PM_MCC_CH_24G,
490 	PM_MCC_CH_5G,
491 	PM_24G_MCC_CH,
492 	PM_5G_MCC_CH,
493 	PM_SBS_CH_5G,
494 	PM_24G_SCC_CH_SBS_CH,
495 	PM_24G_SCC_CH_SBS_CH_5G,
496 	PM_24G_SBS_CH_MCC_CH,
497 	/* New PCL type for DBS-SBS HW */
498 	PM_SBS_CH_24G_SCC_CH,
499 	PM_SBS_CH_SCC_CH_24G,
500 	PM_SCC_CH_SBS_CH_24G,
501 	PM_SBS_CH_SCC_CH_5G_24G,
502 	PM_SCC_CH_MCC_CH_SBS_CH_24G,
503 	PM_SBS_CH_2G,
504 	PM_SCC_ON_5G_LOW_5G_LOW_PLUS_SHARED_2G,
505 	PM_SCC_ON_5G_HIGH_5G_HIGH_PLUS_SHARED_2G,
506 	PM_SCC_ON_5G_HIGH_5G_HIGH_SCC_ON_5G_LOW_PLUS_SHARED_2G,
507 
508 	PM_SBS_CH_MCC_CH,
509 	PM_SBS_5G_MCC_24G,
510 	PM_SCC_ON_24G,
511 	PM_SCC_ON_5G_LOW,
512 	PM_SCC_ON_5G_HIGH,
513 	PM_SBS_CH_MCC_CH_SCC_ON_24_24G,
514 	PM_5G_24G,
515 	PM_MCC_CH_SCC_ON_24G,
516 	PM_SCC_ON_5G_LOW_MCC_ON_5G_HIGH,
517 	PM_SCC_ON_5G_HIGH_MCC_ON_5G_LOW,
518 
519 	PM_MAX_PCL_TYPE
520 };
521 
522 /**
523  * enum policy_mgr_one_connection_mode - Combination of first connection
524  * type, band & spatial stream used.
525  *
526  * @PM_STA_24_1x1: STA connection using 1x1@2.4 Ghz
527  * @PM_STA_24_2x2: STA connection using 2x2@2.4 Ghz
528  * @PM_STA_5_1x1: STA connection using 1x1@5 Ghz
529  * @PM_STA_5_2x2: STA connection using 2x2@5 Ghz
530  * @PM_P2P_CLI_24_1x1: P2P Client connection using 1x1@2.4 Ghz
531  * @PM_P2P_CLI_24_2x2: P2P Client connection using 2x2@2.4 Ghz
532  * @PM_P2P_CLI_5_1x1: P2P Client connection using 1x1@5 Ghz
533  * @PM_P2P_CLI_5_2x2: P2P Client connection using 2x2@5 Ghz
534  * @PM_P2P_GO_24_1x1: P2P GO connection using 1x1@2.4 Ghz
535  * @PM_P2P_GO_24_2x2: P2P GO connection using 2x2@2.4 Ghz
536  * @PM_P2P_GO_5_1x1: P2P GO connection using 1x1@5 Ghz
537  * @PM_P2P_GO_5_2x2: P2P GO connection using 2x2@5 Ghz
538  * @PM_SAP_24_1x1: SAP connection using 1x1@2.4 Ghz
539  * @PM_SAP_24_2x2: SAP connection using 2x2@2.4 Ghz
540  * @PM_SAP_5_1x1: SAP connection using 1x1@5 Ghz
541  * @PM_SAP_5_2x2: SAP connection using 2x2@5 Ghz
542  * @PM_NAN_DISC_24_1x1:  NAN Discovery using 1x1@2.4 Ghz
543  * @PM_NAN_DISC_24_2x2:  NAN Discovery using 2x2@2.4 Ghz
544  * @PM_NDI_24_1x1:  NAN Datapath using 1x1@2.4 Ghz
545  * @PM_NDI_24_2x2:  NAN Datapath using 2x2@2.4 Ghz
546  * @PM_NDI_5_1x1:  NAN Datapath using 1x1@5 Ghz
547  * @PM_NDI_5_2x2:  NAN Datapath using 2x2@5 Ghz
548  * @PM_LL_LT_SAP_5_1x1: Low latency low throughput SAP using 1x1@5 Ghz
549  * @PM_LL_LT_SAP_5_2x2: Low latency low throughput SAP using 2x2@5 Ghz
550  * @PM_MAX_ONE_CONNECTION_MODE: Max place holder
551  *
552  * These are generic IDs that identify the various roles
553  * in the software system
554  */
555 enum policy_mgr_one_connection_mode {
556 	PM_STA_24_1x1 = 0,
557 	PM_STA_24_2x2,
558 	PM_STA_5_1x1,
559 	PM_STA_5_2x2,
560 	PM_P2P_CLI_24_1x1,
561 	PM_P2P_CLI_24_2x2,
562 	PM_P2P_CLI_5_1x1,
563 	PM_P2P_CLI_5_2x2,
564 	PM_P2P_GO_24_1x1,
565 	PM_P2P_GO_24_2x2,
566 	PM_P2P_GO_5_1x1,
567 	PM_P2P_GO_5_2x2,
568 	PM_SAP_24_1x1,
569 	PM_SAP_24_2x2,
570 	PM_SAP_5_1x1,
571 	PM_SAP_5_2x2,
572 	PM_NAN_DISC_24_1x1,
573 	PM_NAN_DISC_24_2x2,
574 	PM_NDI_24_1x1,
575 	PM_NDI_24_2x2,
576 	PM_NDI_5_1x1,
577 	PM_NDI_5_2x2,
578 	PM_LL_LT_SAP_5_1x1,
579 	PM_LL_LT_SAP_5_2x2 = PM_LL_LT_SAP_5_1x1,
580 
581 	PM_MAX_ONE_CONNECTION_MODE
582 };
583 
584 /**
585  * enum policy_mgr_two_connection_mode - Combination of first two
586  * connections type, concurrency state, band & spatial stream
587  * used.
588  *
589  * @PM_STA_SAP_SCC_24_1x1: STA & SAP connection on SCC using
590  *			1x1@2.4 Ghz
591  * @PM_STA_SAP_SCC_24_2x2: STA & SAP connection on SCC using
592  *			2x2@2.4 Ghz
593  * @PM_STA_SAP_MCC_24_1x1: STA & SAP connection on MCC using
594  *			1x1@2.4 Ghz
595  * @PM_STA_SAP_MCC_24_2x2: STA & SAP connection on MCC using
596  *			2x2@2.4 Ghz
597  * @PM_STA_SAP_SCC_5_1x1: STA & SAP connection on SCC using
598  *			1x1@5 Ghz
599  * @PM_STA_SAP_SCC_5_2x2: STA & SAP connection on SCC using
600  *			2x2@5 Ghz
601  * @PM_STA_SAP_MCC_5_1x1: STA & SAP connection on MCC using
602  *			1x1@5 Ghz
603  * @PM_STA_SAP_MCC_5_2x2: STA & SAP connection on MCC using
604  *			2x2@5 Ghz
605  * @PM_STA_SAP_MCC_24_5_1x1:
606  * @PM_STA_SAP_MCC_24_5_2x2:
607  * @PM_STA_SAP_DBS_1x1: STA & SAP connection on DBS using 1x1
608  * @PM_STA_SAP_DBS_2x2: STA & SAP connection on DBS using 2x2
609  * @PM_STA_SAP_SBS_5_1x1: STA & SAP connection on 5G SBS using 1x1
610  * @PM_STA_SAP_SBS_5_2x2: STA & SAP connection on 5G SBS using 2x2
611  * @PM_STA_P2P_GO_SCC_24_1x1: STA & P2P GO connection on SCC
612  *			using 1x1@2.4 Ghz
613  * @PM_STA_P2P_GO_SCC_24_2x2: STA & P2P GO connection on SCC
614  *			using 2x2@2.4 Ghz
615  * @PM_STA_P2P_GO_MCC_24_1x1: STA & P2P GO connection on MCC
616  *			using 1x1@2.4 Ghz
617  * @PM_STA_P2P_GO_MCC_24_2x2: STA & P2P GO connection on MCC
618  *			using 2x2@2.4 Ghz
619  * @PM_STA_P2P_GO_SCC_5_1x1: STA & P2P GO connection on SCC
620  *			using 1x1@5 Ghz
621  * @PM_STA_P2P_GO_SCC_5_2x2: STA & P2P GO connection on SCC
622  *			using 2x2@5 Ghz
623  * @PM_STA_P2P_GO_MCC_5_1x1: STA & P2P GO connection on MCC
624  *			using 1x1@5 Ghz
625  * @PM_STA_P2P_GO_MCC_5_2x2: STA & P2P GO connection on MCC
626  *			using 2x2@5 Ghz
627  * @PM_STA_P2P_GO_MCC_24_5_1x1:
628  * @PM_STA_P2P_GO_MCC_24_5_2x2:
629  * @PM_STA_P2P_GO_DBS_1x1: STA & P2P GO connection on DBS using
630  *			1x1
631  * @PM_STA_P2P_GO_DBS_2x2: STA & P2P GO connection on DBS using
632  *			2x2
633  * @PM_STA_P2P_GO_SBS_5_1x1: STA & P2P GO connection on 5G SBS
634  *			using 1x1
635  * @PM_STA_P2P_GO_SBS_5_2x2: STA & P2P GO connection on 5G SBS
636  *			using 2x2
637  * @PM_STA_P2P_CLI_SCC_24_1x1: STA & P2P CLI connection on SCC
638  *			using 1x1@2.4 Ghz
639  * @PM_STA_P2P_CLI_SCC_24_2x2: STA & P2P CLI connection on SCC
640  *			using 2x2@2.4 Ghz
641  * @PM_STA_P2P_CLI_MCC_24_1x1: STA & P2P CLI connection on MCC
642  *			using 1x1@2.4 Ghz
643  * @PM_STA_P2P_CLI_MCC_24_2x2: STA & P2P CLI connection on MCC
644  *			using 2x2@2.4 Ghz
645  * @PM_STA_P2P_CLI_SCC_5_1x1: STA & P2P CLI connection on SCC
646  *			using 1x1@5 Ghz
647  * @PM_STA_P2P_CLI_SCC_5_2x2: STA & P2P CLI connection on SCC
648  *			using 2x2@5 Ghz
649  * @PM_STA_P2P_CLI_MCC_5_1x1: STA & P2P CLI connection on MCC
650  *			using 1x1@5 Ghz
651  * @PM_STA_P2P_CLI_MCC_5_2x2: STA & P2P CLI connection on MCC
652  *			using 2x2@5 Ghz
653  * @PM_STA_P2P_CLI_MCC_24_5_1x1:
654  * @PM_STA_P2P_CLI_MCC_24_5_2x2:
655  * @PM_STA_P2P_CLI_DBS_1x1: STA & P2P CLI connection on DBS
656  *			using 1x1
657  * @PM_STA_P2P_CLI_DBS_2x2: STA & P2P CLI connection on DBS
658  *			using 2x2
659  * @PM_STA_P2P_CLI_SBS_5_1x1: STA & P2P CLI connection on 5G
660  *			SBS using 1x1
661  * @PM_STA_P2P_CLI_SBS_5_2x2: STA & P2P CLI connection on 5G
662  *			SBS using 2x2
663  * @PM_P2P_GO_P2P_CLI_SCC_24_1x1: P2P GO & CLI connection on
664  *			SCC using 1x1@2.4 Ghz
665  * @PM_P2P_GO_P2P_CLI_SCC_24_2x2: P2P GO & CLI connection on
666  *			SCC using 2x2@2.4 Ghz
667  * @PM_P2P_GO_P2P_CLI_MCC_24_1x1: P2P GO & CLI connection on
668  *			MCC using 1x1@2.4 Ghz
669  * @PM_P2P_GO_P2P_CLI_MCC_24_2x2: P2P GO & CLI connection on
670  *			MCC using 2x2@2.4 Ghz
671  * @PM_P2P_GO_P2P_CLI_SCC_5_1x1: P2P GO & CLI connection on
672  *			SCC using 1x1@5 Ghz
673  * @PM_P2P_GO_P2P_CLI_SCC_5_2x2: P2P GO & CLI connection on
674  *			SCC using 2x2@5 Ghz
675  * @PM_P2P_GO_P2P_CLI_MCC_5_1x1: P2P GO & CLI connection on
676  *			MCC using 1x1@5 Ghz
677  * @PM_P2P_GO_P2P_CLI_MCC_5_2x2: P2P GO & CLI connection on
678  *			MCC using 2x2@5 Ghz
679  * @PM_P2P_GO_P2P_CLI_MCC_24_5_1x1:
680  * @PM_P2P_GO_P2P_CLI_MCC_24_5_2x2:
681  * @PM_P2P_GO_P2P_CLI_DBS_1x1: P2P GO & CLI connection on DBS
682  *			using 1x1
683  * @PM_P2P_GO_P2P_CLI_DBS_2x2: P2P GO & P2P CLI connection
684  *			on DBS using 2x2
685  * @PM_P2P_GO_P2P_CLI_SBS_5_1x1: P2P GO & P2P CLI connection
686  *			on 5G SBS using 1x1
687  * @PM_P2P_GO_P2P_CLI_SBS_5_2x2: P2P GO & P2P CLI connection
688  *			on 5G SBS using 2x2
689  * @PM_P2P_GO_SAP_SCC_24_1x1: P2P GO & SAP connection on
690  *			SCC using 1x1@2.4 Ghz
691  * @PM_P2P_GO_SAP_SCC_24_2x2: P2P GO & SAP connection on
692  *			SCC using 2x2@2.4 Ghz
693  * @PM_P2P_GO_SAP_MCC_24_1x1: P2P GO & SAP connection on
694  *			MCC using 1x1@2.4 Ghz
695  * @PM_P2P_GO_SAP_MCC_24_2x2: P2P GO & SAP connection on
696  *			MCC using 2x2@2.4 Ghz
697  * @PM_P2P_GO_SAP_SCC_5_1x1: P2P GO & SAP connection on
698  *			SCC using 1x1@5 Ghz
699  * @PM_P2P_GO_SAP_SCC_5_2x2: P2P GO & SAP connection on
700  *			SCC using 2x2@5 Ghz
701  * @PM_P2P_GO_SAP_MCC_5_1x1: P2P GO & SAP connection on
702  *			MCC using 1x1@5 Ghz
703  * @PM_P2P_GO_SAP_MCC_5_2x2: P2P GO & SAP connection on
704  *			MCC using 2x2@5 Ghz
705  * @PM_P2P_GO_SAP_MCC_24_5_1x1:
706  * @PM_P2P_GO_SAP_MCC_24_5_2x2:
707  * @PM_P2P_GO_SAP_DBS_1x1: P2P GO & SAP connection on DBS using
708  *			1x1
709  * @PM_P2P_GO_SAP_DBS_2x2: P2P GO & SAP connection on DBS using
710  *			2x2
711  * @PM_P2P_GO_SAP_SBS_5_1x1: P2P GO & SAP connection on 5G SBS
712  *			using 1x1
713  * @PM_P2P_GO_SAP_SBS_5_2x2: P2P GO & SAP connection on 5G SBS
714  *			using 2x2
715  * @PM_P2P_GO_P2P_GO_SCC_24_1x1: P2P GO & P2P GO SCC on 2.4G using 1x1
716  * @PM_P2P_GO_P2P_GO_SCC_24_2x2: P2P GO & P2P GO SCC on 2.4G using 2x2
717  * @PM_P2P_GO_P2P_GO_MCC_24_1x1: P2P GO & P2P GO MCC on 2.4G using 1x1
718  * @PM_P2P_GO_P2P_GO_MCC_24_2x2: P2P GO & P2P GO MCC on 2.4G using 2x2
719  * @PM_P2P_GO_P2P_GO_SCC_5_1x1: P2P GO & P2P GO SCC on 5G using 1x1
720  * @PM_P2P_GO_P2P_GO_SCC_5_2x2: P2P GO & P2P GO SCC on 5G using 2x2
721  * @PM_P2P_GO_P2P_GO_MCC_5_1x1: P2P GO & P2P GO MCC on 5G using 1x1
722  * @PM_P2P_GO_P2P_GO_MCC_5_2x2: P2P GO & P2P GO MCC on 5G using 2x2
723  * @PM_P2P_GO_P2P_GO_MCC_24_5_1x1: P2P GO 2.4G & P2P GO 5G dual band MCC
724  *                                 using 1x1
725  * @PM_P2P_GO_P2P_GO_MCC_24_5_2x2: P2P GO 2.4G & P2P GO 5G dual band MCC
726  *                                 using 2x2
727  * @PM_P2P_GO_P2P_GO_DBS_1x1: P2P GO & P2P GO on DBS using 1x1
728  * @PM_P2P_GO_P2P_GO_DBS_2x2: P2P GO & P2P GO on DBS using 2x2
729  * @PM_P2P_GO_P2P_GO_SBS_5_1x1: P2P GO & P2P GO on SBS using 1x1
730  * @PM_P2P_GO_P2P_GO_SBS_5_2x2: P2P GO & P2P GO on SBS using 2x2
731  * @PM_P2P_CLI_SAP_SCC_24_1x1: CLI & SAP connection on SCC using
732  *			1x1@2.4 Ghz
733  * @PM_P2P_CLI_SAP_SCC_24_2x2: CLI & SAP connection on SCC using
734  *			2x2@2.4 Ghz
735  * @PM_P2P_CLI_SAP_MCC_24_1x1: CLI & SAP connection on MCC using
736  *			1x1@2.4 Ghz
737  * @PM_P2P_CLI_SAP_MCC_24_2x2: CLI & SAP connection on MCC using
738  *			2x2@2.4 Ghz
739  * @PM_P2P_CLI_SAP_SCC_5_1x1: CLI & SAP connection on SCC using
740  *			1x1@5 Ghz
741  * @PM_P2P_CLI_SAP_SCC_5_2x2: CLI & SAP connection on SCC using
742  *			2x2@5 Ghz
743  * @PM_P2P_CLI_SAP_MCC_5_1x1: CLI & SAP connection on MCC using
744  *			1x1@5 Ghz
745  * @PM_P2P_CLI_SAP_MCC_5_2x2: CLI & SAP connection on MCC using
746  *			2x2@5 Ghz
747  * @PM_P2P_CLI_SAP_MCC_24_5_1x1: CLI and SAP connecting on MCC
748  *			in 2.4 and 5GHz 1x1
749  * @PM_P2P_CLI_SAP_MCC_24_5_2x2: CLI and SAP connecting on MCC
750  *			in 2.4 and 5GHz 2x2
751  * @PM_P2P_CLI_SAP_DBS_1x1: CLI & SAP connection on DBS using 1x1
752  * @PM_P2P_CLI_SAP_DBS_2x2: P2P CLI & SAP connection on DBS using
753  *			2x2
754  * @PM_P2P_CLI_SAP_SBS_5_1x1: P2P CLI & SAP connection on 5G SBS
755  *			using 1x1
756  * @PM_P2P_CLI_SAP_SBS_5_2x2: P2P CLI & SAP connection on 5G SBS
757  *			using 2x2
758  * @PM_P2P_CLI_P2P_CLI_SCC_24_1x1: P2P CLI & P2P CLI SCC on 2.4G using 1x1
759  * @PM_P2P_CLI_P2P_CLI_SCC_24_2x2: P2P CLI & P2P CLI SCC on 2.4G using 2x2
760  * @PM_P2P_CLI_P2P_CLI_MCC_24_1x1: P2P CLI & P2P CLI MCC on 2.4G using 1x1
761  * @PM_P2P_CLI_P2P_CLI_MCC_24_2x2: P2P CLI & P2P CLI MCC on 2.4G using 2x2
762  * @PM_P2P_CLI_P2P_CLI_SCC_5_1x1: P2P CLI & P2P CLI SCC on 5G using 1x1
763  * @PM_P2P_CLI_P2P_CLI_SCC_5_2x2: P2P CLI & P2P CLI SCC on 5G using 2x2
764  * @PM_P2P_CLI_P2P_CLI_MCC_5_1x1: P2P CLI & P2P CLI MCC on 5G using 1x1
765  * @PM_P2P_CLI_P2P_CLI_MCC_5_2x2: P2P CLI & P2P CLI MCC on 5G using 2x2
766  * @PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1: P2P CLI 2.4G & P2P CLI 5G dual band MCC
767  *                                 using 1x1
768  * @PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2: P2P CLI 2.4G & P2P CLI 5G dual band MCC
769  *                                 using 2x2
770  * @PM_P2P_CLI_P2P_CLI_DBS_1x1: P2P CLI & P2P CLI on DBS using 1x1
771  * @PM_P2P_CLI_P2P_CLI_DBS_2x2: P2P CLI & P2P CLI on DBS using 2x2
772  * @PM_P2P_CLI_P2P_CLI_SBS_5_1x1: P2P CLI & P2P CLI on SBS using 1x1
773  * @PM_P2P_CLI_P2P_CLI_SBS_5_2x2: P2P CLI & P2P CLI on SBS using 2x2
774  * @PM_SAP_SAP_SCC_24_1x1: SAP & SAP connection on
775  *			SCC using 1x1@2.4 Ghz
776  * @PM_SAP_SAP_SCC_24_2x2: SAP & SAP connection on
777  *			SCC using 2x2@2.4 Ghz
778  * @PM_SAP_SAP_MCC_24_1x1: SAP & SAP connection on
779  *			MCC using 1x1@2.4 Ghz
780  * @PM_SAP_SAP_MCC_24_2x2: SAP & SAP connection on
781  *			MCC using 2x2@2.4 Ghz
782  * @PM_SAP_SAP_SCC_5_1x1: SAP & SAP connection on
783  *			SCC using 1x1@5 Ghz
784  * @PM_SAP_SAP_SCC_5_2x2: SAP & SAP connection on
785  *			SCC using 2x2@5 Ghz
786  * @PM_SAP_SAP_MCC_5_1x1: SAP & SAP connection on
787  *			MCC using 1x1@5 Ghz
788  * @PM_SAP_SAP_MCC_5_2x2: SAP & SAP connection on
789  *          MCC using 2x2@5 Ghz
790  * @PM_SAP_SAP_MCC_24_5_1x1: SAP & SAP connection on
791  *			MCC in 2.4 and 5GHz 1x1
792  * @PM_SAP_SAP_MCC_24_5_2x2: SAP & SAP connection on
793  *			MCC in 2.4 and 5GHz 2x2
794  * @PM_SAP_SAP_DBS_1x1: SAP & SAP connection on DBS using
795  *			1x1
796  * @PM_SAP_SAP_DBS_2x2: SAP & SAP connection on DBS using 2x2
797  * @PM_SAP_SAP_SBS_5_1x1: SAP & SAP connection on 5G SBS using 1x1
798  * @PM_SAP_SAP_SBS_5_2x2: SAP & SAP connection on 5G SBS using 2x2
799  * @PM_SAP_NAN_DISC_SCC_24_1x1: SAP & NAN connection on
800  *			SCC using 1x1@2.4 Ghz
801  * @PM_SAP_NAN_DISC_SCC_24_2x2: SAP & NAN connection on
802  *			SCC using 2x2@2.4 Ghz
803  * @PM_SAP_NAN_DISC_MCC_24_1x1: SAP & NAN connection on
804  *			MCC using 1x1@2.4 Ghz
805  * @PM_SAP_NAN_DISC_MCC_24_2x2: SAP & NAN connection on
806  *			SCC using 2x2@2.4 Ghz
807  * @PM_SAP_NAN_DISC_DBS_1x1: SAP & NAN connection on DBS using 1x1
808  * @PM_SAP_NAN_DISC_DBS_2x2: SAP & NAN connection on DBS using 2x2
809  * @PM_STA_STA_SCC_24_1x1: STA & STA connection on
810  *			SCC using 1x1@2.4 Ghz
811  * @PM_STA_STA_SCC_24_2x2: STA & STA connection on
812  *			SCC using 2x2@2.4 Ghz
813  * @PM_STA_STA_MCC_24_1x1: STA & STA connection on
814  *			MCC using 1x1@2.4 Ghz
815  * @PM_STA_STA_MCC_24_2x2: STA & STA connection on
816  *			MCC using 2x2@2.4 Ghz
817  * @PM_STA_STA_SCC_5_1x1: STA & STA connection on
818  *			SCC using 1x1@5 Ghz
819  * @PM_STA_STA_SCC_5_2x2: STA & STA connection on
820  *			SCC using 2x2@5 Ghz
821  * @PM_STA_STA_MCC_5_1x1: STA & STA connection on
822  *			MCC using 1x1@5 Ghz
823  * @PM_STA_STA_MCC_5_2x2: STA & STA connection on
824  *          MCC using 2x2@5 Ghz
825  * @PM_STA_STA_MCC_24_5_1x1: STA & STA connection on
826  *			MCC in 2.4 and 5GHz 1x1
827  * @PM_STA_STA_MCC_24_5_2x2: STA & STA connection on
828  *			MCC in 2.4 and 5GHz 2x2
829  * @PM_STA_STA_DBS_1x1: STA & STA connection on DBS using
830  *			1x1
831  * @PM_STA_STA_DBS_2x2: STA & STA connection on DBS using 2x2
832  * @PM_STA_STA_SBS_5_1x1: STA & STA connection on 5G SBS using 1x1
833  * @PM_STA_STA_SBS_5_2x2: STA & STA connection on 5G SBS using 2x2
834  * @PM_STA_NAN_DISC_SCC_24_1x1: NAN & STA connection on SCC using 1x1 on 2.4 GHz
835  * @PM_STA_NAN_DISC_SCC_24_2x2: NAN & STA connection on SCC using 2x2 on 2.4 GHz
836  * @PM_STA_NAN_DISC_MCC_24_1x1: NAN & STA connection on MCC using 1x1 on 2.4 GHz
837  * @PM_STA_NAN_DISC_MCC_24_2x2: NAN & STA connection on MCC using 2x2 on 2.4 GHz
838  * @PM_STA_NAN_DISC_DBS_1x1: NAN & STA connection on DBS using 1x1
839  * @PM_STA_NAN_DISC_DBS_2x2: NAN & STA connection on DBS using 2x2
840  * @PM_NAN_DISC_NDI_SCC_24_1x1: NAN & NDI connection on SCC using 1x1 on 2.4 GHz
841  * @PM_NAN_DISC_NDI_SCC_24_2x2: NAN & NDI connection on SCC using 2x2 on 2.4 GHz
842  * @PM_NAN_DISC_NDI_MCC_24_1x1: NAN & NDI connection on MCC using 1x1 on 2.4 GHz
843  * @PM_NAN_DISC_NDI_MCC_24_2x2: NAN & NDI connection on MCC using 2x2 on 2.4 GHz
844  * @PM_NAN_DISC_NDI_DBS_1x1: NAN & NDI connection on DBS using 1x1
845  * @PM_NAN_DISC_NDI_DBS_2x2: NAN & NDI connection on DBS using 2x2
846  * @PM_STA_24_LL_LT_SAP_DBS_1x1: STA & LL_LT_SAP connection in DBS using 1x1
847  * @PM_STA_24_LL_LT_SAP_DBS_2x2: STA & LL_LT_SAP connection in DBS using 2x2
848  * @PM_STA_5_LL_LT_SAP_MCC_1x1: STA & LL_LT_SAP connection in MCC on 5 GHz
849  * using 1x1
850  * @PM_STA_5_LL_LT_SAP_MCC_2x2: STA & LL_LT_SAP connection in MCC on 5 GHz
851  * using 2x2
852  * @PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: STA on 5G low & LL_LT_SAP on 5G high
853  * connection in SBS using 1x1
854  * @PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: STA on 5G low & LL_LT_SAP on 5G high
855  * connection in SBS using 2x2
856  * @PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: STA on 5G high & LL_LT_SAP on 5G low
857  * connection in SBS using 1x1
858  * @PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: STA on 5G high & LL_LT_SAP on 5G low
859  * connection in SBS using 1x1
860  * @PM_SAP_24_LL_LT_SAP_DBS_1x1: SAP & LL_LT_SAP connection in DBS using 1x1
861  * @PM_SAP_24_LL_LT_SAP_DBS_2x2: SAP & LL_LT_SAP connection in DBS using 2x2
862  * @PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: SAP on 5G low & LL_LT_SAP on 5G high
863  * connection in SBS using 1x1
864  * @PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: SAP on 5G low & LL_LT_SAP on 5G high
865  * connection in SBS using 2x2
866  * @PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: SAP on 5G high & LL_LT_SAP on 5G low
867  * connection in SBS using 1x1
868  * @PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: SAP on 5G high & LL_LT_SAP on 5G low
869  * connection in SBS using 1x1
870  * @PM_P2P_GO_24_LL_LT_SAP_DBS_1x1: P2P GO & LL_LT_SAP connection in DBS
871  * using 1x1
872  * @PM_P2P_GO_24_LL_LT_SAP_DBS_2x2: P2P GO & LL_LT_SAP connection in DBS
873  * using 2x2
874  * @PM_P2P_GO_5_LL_LT_SAP_MCC_1x1: GO & LL_LT_SAP connection in MCC using 1x1
875  * @PM_P2P_GO_5_LL_LT_SAP_MCC_2x2: GO & LL_LT_SAP connection in MCC using 2x2
876  * @PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: GO on 5G low & LL_LT_SAP on 5G
877  * high connection in SBS using 1x1
878  * @PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: GO on 5G low & LL_LT_SAP on 5G
879  * high connection in SBS using 2x2
880  * @PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: GO on 5G high & LL_LT_SAP on 5G
881  * low connection in SBS using 1x1
882  * @PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: GO on 5G high & LL_LT_SAP on 5G
883  * low connection in SBS using 2x2
884  * @PM_P2P_CLI_24_LL_LT_SAP_DBS_1x1: CLI & LL_LT_SAP connection in DBS using 1x1
885  * @PM_P2P_CLI_24_LL_LT_SAP_DBS_2x2: CLI & LL_LT_SAP connection in DBS using 2x2
886  * @PM_P2P_CLI_5_LL_LT_SAP_MCC_1x1: CLI & LL_LT_SAP connection in MCC on 5 GHz
887  * using 1x1
888  * @PM_P2P_CLI_5_LL_LT_SAP_MCC_2x2: CLI & LL_LT_SAP connection in MCC on 5 GHz
889  * using 2x2
890  * @PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1: CLI on 5G low & LL_LT_SAP on 5G
891  * high connection in SBS using 1x1
892  * @PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2: CLI on 5G low & LL_LT_SAP on 5G
893  * high connection in SBS using 2x2
894  * @PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1: CLI on 5G high & LL_LT_SAP on 5G
895  * low connection in SBS using 1x1
896  * @PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2: CLI on 5G high & LL_LT_SAP on 5G
897  * low connection in SBS using 2x2
898  * @PM_MAX_TWO_CONNECTION_MODE: Max enumeration
899  *
900  * These are generic IDs that identify the various roles in the
901  * software system
902  */
903 enum policy_mgr_two_connection_mode {
904 	PM_STA_SAP_SCC_24_1x1 = 0,
905 	PM_STA_SAP_SCC_24_2x2,
906 	PM_STA_SAP_MCC_24_1x1,
907 	PM_STA_SAP_MCC_24_2x2,
908 	PM_STA_SAP_SCC_5_1x1,
909 	PM_STA_SAP_SCC_5_2x2,
910 	PM_STA_SAP_MCC_5_1x1,
911 	PM_STA_SAP_MCC_5_2x2,
912 	PM_STA_SAP_MCC_24_5_1x1,
913 	PM_STA_SAP_MCC_24_5_2x2,
914 	PM_STA_SAP_DBS_1x1,
915 	PM_STA_SAP_DBS_2x2,
916 	PM_STA_SAP_SBS_5_1x1,
917 	PM_STA_SAP_SBS_5_2x2 = PM_STA_SAP_SBS_5_1x1,
918 	PM_STA_P2P_GO_SCC_24_1x1,
919 	PM_STA_P2P_GO_SCC_24_2x2,
920 	PM_STA_P2P_GO_MCC_24_1x1,
921 	PM_STA_P2P_GO_MCC_24_2x2,
922 	PM_STA_P2P_GO_SCC_5_1x1,
923 	PM_STA_P2P_GO_SCC_5_2x2,
924 	PM_STA_P2P_GO_MCC_5_1x1,
925 	PM_STA_P2P_GO_MCC_5_2x2,
926 	PM_STA_P2P_GO_MCC_24_5_1x1,
927 	PM_STA_P2P_GO_MCC_24_5_2x2,
928 	PM_STA_P2P_GO_DBS_1x1,
929 	PM_STA_P2P_GO_DBS_2x2,
930 	PM_STA_P2P_GO_SBS_5_1x1,
931 	PM_STA_P2P_GO_SBS_5_2x2 = PM_STA_P2P_GO_SBS_5_1x1,
932 	PM_STA_P2P_CLI_SCC_24_1x1,
933 	PM_STA_P2P_CLI_SCC_24_2x2,
934 	PM_STA_P2P_CLI_MCC_24_1x1,
935 	PM_STA_P2P_CLI_MCC_24_2x2,
936 	PM_STA_P2P_CLI_SCC_5_1x1,
937 	PM_STA_P2P_CLI_SCC_5_2x2,
938 	PM_STA_P2P_CLI_MCC_5_1x1,
939 	PM_STA_P2P_CLI_MCC_5_2x2,
940 	PM_STA_P2P_CLI_MCC_24_5_1x1,
941 	PM_STA_P2P_CLI_MCC_24_5_2x2,
942 	PM_STA_P2P_CLI_DBS_1x1,
943 	PM_STA_P2P_CLI_DBS_2x2,
944 	PM_STA_P2P_CLI_SBS_5_1x1,
945 	PM_STA_P2P_CLI_SBS_5_2x2 = PM_STA_P2P_CLI_SBS_5_1x1,
946 	PM_P2P_GO_P2P_CLI_SCC_24_1x1,
947 	PM_P2P_GO_P2P_CLI_SCC_24_2x2,
948 	PM_P2P_GO_P2P_CLI_MCC_24_1x1,
949 	PM_P2P_GO_P2P_CLI_MCC_24_2x2,
950 	PM_P2P_GO_P2P_CLI_SCC_5_1x1,
951 	PM_P2P_GO_P2P_CLI_SCC_5_2x2,
952 	PM_P2P_GO_P2P_CLI_MCC_5_1x1,
953 	PM_P2P_GO_P2P_CLI_MCC_5_2x2,
954 	PM_P2P_GO_P2P_CLI_MCC_24_5_1x1,
955 	PM_P2P_GO_P2P_CLI_MCC_24_5_2x2,
956 	PM_P2P_GO_P2P_CLI_DBS_1x1,
957 	PM_P2P_GO_P2P_CLI_DBS_2x2,
958 	PM_P2P_GO_P2P_CLI_SBS_5_1x1,
959 	PM_P2P_GO_P2P_CLI_SBS_5_2x2 = PM_P2P_GO_P2P_CLI_SBS_5_1x1,
960 	PM_P2P_GO_SAP_SCC_24_1x1,
961 	PM_P2P_GO_SAP_SCC_24_2x2,
962 	PM_P2P_GO_SAP_MCC_24_1x1,
963 	PM_P2P_GO_SAP_MCC_24_2x2,
964 	PM_P2P_GO_SAP_SCC_5_1x1,
965 	PM_P2P_GO_SAP_SCC_5_2x2,
966 	PM_P2P_GO_SAP_MCC_5_1x1,
967 	PM_P2P_GO_SAP_MCC_5_2x2,
968 	PM_P2P_GO_SAP_MCC_24_5_1x1,
969 	PM_P2P_GO_SAP_MCC_24_5_2x2,
970 	PM_P2P_GO_SAP_DBS_1x1,
971 	PM_P2P_GO_SAP_DBS_2x2,
972 	PM_P2P_GO_SAP_SBS_5_1x1,
973 	PM_P2P_GO_SAP_SBS_5_2x2 = PM_P2P_GO_SAP_SBS_5_1x1,
974 	PM_P2P_GO_P2P_GO_SCC_24_1x1,
975 	PM_P2P_GO_P2P_GO_SCC_24_2x2,
976 	PM_P2P_GO_P2P_GO_MCC_24_1x1,
977 	PM_P2P_GO_P2P_GO_MCC_24_2x2,
978 	PM_P2P_GO_P2P_GO_SCC_5_1x1,
979 	PM_P2P_GO_P2P_GO_SCC_5_2x2,
980 	PM_P2P_GO_P2P_GO_MCC_5_1x1,
981 	PM_P2P_GO_P2P_GO_MCC_5_2x2,
982 	PM_P2P_GO_P2P_GO_MCC_24_5_1x1,
983 	PM_P2P_GO_P2P_GO_MCC_24_5_2x2,
984 	PM_P2P_GO_P2P_GO_DBS_1x1,
985 	PM_P2P_GO_P2P_GO_DBS_2x2,
986 	PM_P2P_GO_P2P_GO_SBS_5_1x1,
987 	PM_P2P_GO_P2P_GO_SBS_5_2x2 = PM_P2P_GO_P2P_GO_SBS_5_1x1,
988 	PM_P2P_CLI_SAP_SCC_24_1x1,
989 	PM_P2P_CLI_SAP_SCC_24_2x2,
990 	PM_P2P_CLI_SAP_MCC_24_1x1,
991 	PM_P2P_CLI_SAP_MCC_24_2x2,
992 	PM_P2P_CLI_SAP_SCC_5_1x1,
993 	PM_P2P_CLI_SAP_SCC_5_2x2,
994 	PM_P2P_CLI_SAP_MCC_5_1x1,
995 	PM_P2P_CLI_SAP_MCC_5_2x2,
996 	PM_P2P_CLI_SAP_MCC_24_5_1x1,
997 	PM_P2P_CLI_SAP_MCC_24_5_2x2,
998 	PM_P2P_CLI_SAP_DBS_1x1,
999 	PM_P2P_CLI_SAP_DBS_2x2,
1000 	PM_P2P_CLI_SAP_SBS_5_1x1,
1001 	PM_P2P_CLI_SAP_SBS_5_2x2 = PM_P2P_CLI_SAP_SBS_5_1x1,
1002 	PM_P2P_CLI_P2P_CLI_SCC_24_1x1,
1003 	PM_P2P_CLI_P2P_CLI_SCC_24_2x2,
1004 	PM_P2P_CLI_P2P_CLI_MCC_24_1x1,
1005 	PM_P2P_CLI_P2P_CLI_MCC_24_2x2,
1006 	PM_P2P_CLI_P2P_CLI_SCC_5_1x1,
1007 	PM_P2P_CLI_P2P_CLI_SCC_5_2x2,
1008 	PM_P2P_CLI_P2P_CLI_MCC_5_1x1,
1009 	PM_P2P_CLI_P2P_CLI_MCC_5_2x2,
1010 	PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1,
1011 	PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2,
1012 	PM_P2P_CLI_P2P_CLI_DBS_1x1,
1013 	PM_P2P_CLI_P2P_CLI_DBS_2x2,
1014 	PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
1015 	PM_P2P_CLI_P2P_CLI_SBS_5_2x2 = PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
1016 	PM_SAP_SAP_SCC_24_1x1,
1017 	PM_SAP_SAP_SCC_24_2x2,
1018 	PM_SAP_SAP_MCC_24_1x1,
1019 	PM_SAP_SAP_MCC_24_2x2,
1020 	PM_SAP_SAP_SCC_5_1x1,
1021 	PM_SAP_SAP_SCC_5_2x2,
1022 	PM_SAP_SAP_MCC_5_1x1,
1023 	PM_SAP_SAP_MCC_5_2x2,
1024 	PM_SAP_SAP_MCC_24_5_1x1,
1025 	PM_SAP_SAP_MCC_24_5_2x2,
1026 	PM_SAP_SAP_DBS_1x1,
1027 	PM_SAP_SAP_DBS_2x2,
1028 	PM_SAP_SAP_SBS_5_1x1,
1029 	PM_SAP_SAP_SBS_5_2x2 = PM_SAP_SAP_SBS_5_1x1,
1030 	PM_SAP_NAN_DISC_SCC_24_1x1,
1031 	PM_SAP_NAN_DISC_SCC_24_2x2,
1032 	PM_SAP_NAN_DISC_MCC_24_1x1,
1033 	PM_SAP_NAN_DISC_MCC_24_2x2,
1034 	PM_SAP_NAN_DISC_DBS_1x1,
1035 	PM_SAP_NAN_DISC_DBS_2x2,
1036 	PM_STA_STA_SCC_24_1x1,
1037 	PM_STA_STA_SCC_24_2x2,
1038 	PM_STA_STA_MCC_24_1x1,
1039 	PM_STA_STA_MCC_24_2x2,
1040 	PM_STA_STA_SCC_5_1x1,
1041 	PM_STA_STA_SCC_5_2x2,
1042 	PM_STA_STA_MCC_5_1x1,
1043 	PM_STA_STA_MCC_5_2x2,
1044 	PM_STA_STA_MCC_24_5_1x1,
1045 	PM_STA_STA_MCC_24_5_2x2,
1046 	PM_STA_STA_DBS_1x1,
1047 	PM_STA_STA_DBS_2x2,
1048 	PM_STA_STA_SBS_5_1x1,
1049 	PM_STA_STA_SBS_5_2x2 = PM_STA_STA_SBS_5_1x1,
1050 	PM_STA_NAN_DISC_SCC_24_1x1,
1051 	PM_STA_NAN_DISC_SCC_24_2x2,
1052 	PM_STA_NAN_DISC_MCC_24_1x1,
1053 	PM_STA_NAN_DISC_MCC_24_2x2,
1054 	PM_STA_NAN_DISC_DBS_1x1,
1055 	PM_STA_NAN_DISC_DBS_2x2,
1056 	PM_NAN_DISC_NDI_SCC_24_1x1,
1057 	PM_NAN_DISC_NDI_SCC_24_2x2,
1058 	PM_NAN_DISC_NDI_MCC_24_1x1,
1059 	PM_NAN_DISC_NDI_MCC_24_2x2,
1060 	PM_NAN_DISC_NDI_DBS_1x1,
1061 	PM_NAN_DISC_NDI_DBS_2x2,
1062 	PM_STA_24_LL_LT_SAP_DBS_1x1,
1063 	PM_STA_24_LL_LT_SAP_DBS_2x2 = PM_STA_24_LL_LT_SAP_DBS_1x1,
1064 	PM_STA_5_LL_LT_SAP_MCC_1x1,
1065 	PM_STA_5_LL_LT_SAP_MCC_2x2 = PM_STA_5_LL_LT_SAP_MCC_1x1,
1066 	PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1067 	PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1068 					PM_STA_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1069 	PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1070 	PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1071 					PM_STA_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1072 	PM_SAP_24_LL_LT_SAP_DBS_1x1,
1073 	PM_SAP_24_LL_LT_SAP_DBS_2x2 = PM_SAP_24_LL_LT_SAP_DBS_1x1,
1074 	PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1075 	PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1076 					PM_SAP_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1077 	PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1078 	PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1079 					PM_SAP_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1080 	PM_P2P_GO_24_LL_LT_SAP_DBS_1x1,
1081 	PM_P2P_GO_24_LL_LT_SAP_DBS_2x2 = PM_P2P_GO_24_LL_LT_SAP_DBS_1x1,
1082 	PM_P2P_GO_5_LL_LT_SAP_MCC_1x1,
1083 	PM_P2P_GO_5_LL_LT_SAP_MCC_2x2 = PM_P2P_GO_5_LL_LT_SAP_MCC_1x1,
1084 	PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1085 	PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1086 				PM_P2P_GO_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1087 	PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1088 	PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1089 				PM_P2P_GO_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1090 	PM_P2P_CLI_24_LL_LT_SAP_DBS_1x1,
1091 	PM_P2P_CLI_24_LL_LT_SAP_DBS_2x2 = PM_P2P_CLI_24_LL_LT_SAP_DBS_1x1,
1092 	PM_P2P_CLI_5_LL_LT_SAP_MCC_1x1,
1093 	PM_P2P_CLI_5_LL_LT_SAP_MCC_2x2 = PM_P2P_CLI_5_LL_LT_SAP_MCC_1x1,
1094 	PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1095 	PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_2x2 =
1096 				PM_P2P_CLI_5_LOW_LL_LT_SAP_5_HIGH_SBS_1x1,
1097 	PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1098 	PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_2x2 =
1099 				PM_P2P_CLI_5_HIGH_LL_LT_SAP_5_LOW_SBS_1x1,
1100 
1101 	PM_MAX_TWO_CONNECTION_MODE
1102 };
1103 
1104 #ifdef FEATURE_FOURTH_CONNECTION
1105 /**
1106  * enum policy_mgr_three_connection_mode - Combination of first three
1107  * connections type, concurrency state, band used.
1108  *
1109  * @PM_STA_SAP_SCC_24_SAP_5_DBS: STA & SAP connection on 2.4 GHZ, another
1110  * SAP on 5 GHZ
1111  * @PM_STA_SAP_SCC_5_SAP_24_DBS: STA & SAP connection on 5 GHZ,
1112  * another SAP on 2.4 GHZ
1113  * @PM_24_SCC_MCC_PLUS_5_DBS: ANY 2 link on 2.4 GHZ SCC/MCC mac and one link on
1114  * 5 GHZ doing DBS
1115  * @PM_STA_SAP_24_STA_5_DBS: STA & SAP connection on 2.4 GHZ SCC/MCC,
1116  * another STA on 5 GHZ
1117  * @PM_5_SCC_MCC_PLUS_24_DBS: ANY 2 link on 5 GHZ SCC/MCC mac and one link on
1118  * 2.4 GHZ doing DBS
1119  * @PM_STA_SAP_5_STA_24_DBS: STA & SAP connection on 5 GHZ SCC/MCC,
1120  * STA on 2.4 GHZ
1121  * @PM_STA_STA_5_SAP_24_DBS: STA & STA connection on 5 GHZ SCC/MCC,
1122  * SAP on 2.4 GHZ
1123  * @PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS: NAN_DISC & SAP connection on 2.4 Ghz SCC,
1124  * NDI/NDP on 5 G
1125  * @PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS: NAN_DISC & NDI/NDP connection on 2.4 Ghz
1126  * SCC, SAP on 5 G
1127  * @PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS: SAP & NDI/NDP connection on 5 Ghz,
1128  * NAN_DISC on 24 Ghz
1129  * @PM_NAN_DISC_STA_24_NDI_5_DBS: STA and NAN Disc on 2.4Ghz and NDI on 5ghz DBS
1130  * @PM_NAN_DISC_NDI_24_STA_5_DBS: NDI and NAN Disc on 2.4Ghz and STA on 5ghz DBS
1131  * @PM_STA_NDI_5_NAN_DISC_24_DBS: STA, NDI on 5ghz and NAN Disc on 2.4Ghz DBS
1132  * @PM_STA_NDI_NAN_DISC_24_SMM: STA, NDI, NAN Disc all on 2.4ghz SMM
1133  * @PM_NAN_DISC_NDI_24_NDI_5_DBS: NDI and NAN Disc on 2.4Ghz and second NDI in
1134  * 5ghz DBS
1135  * @PM_NDI_NDI_5_NAN_DISC_24_DBS: Both NDI on 5ghz and NAN Disc on 2.4Ghz DBS
1136  * @PM_NDI_NDI_NAN_DISC_24_SMM: Both NDI, NAN Disc on 2.4ghz SMM
1137  * @PM_SAP_SAP_SCC_24_SAP_5_DBS: Both SAP on 2.4Ghz and another SAP on 5Ghz DBS
1138  * @PM_SAP_SAP_SCC_5_SAP_24_DBS: Both SAP on 5Ghz and another SAP on 2.4Ghz DBS
1139  * @PM_STA_STA_5_NAN_DISC_24_DBS: Both STA on 5Ghz and NAN Disc on 2.4Ghz DBS
1140  * @PM_NAN_DISC_24_STA_STA_5_DBS: NAN Disc on 2.4Ghz and both STA on 5Ghz DBS
1141  * @PM_STA_STA_24_NAN_DISC_24_SMM: Both STA on 2.4Ghz and NAN Disc on 2.4Ghz SMM
1142  * @PM_NAN_DISC_24_STA_STA_24_SMM: NAN Disc on 2.4Ghz and both STA on 2.4Ghz SMM
1143  * @PM_STA_24_STA_5_NAN_DISC_24_SMM: First STA on 2.4Ghz and second STA on 5Ghz
1144  * and NAN Disc on 2.4Ghz SMM
1145  * @PM_STA_24_STA_5_NAN_DISC_24_DBS: First STA on 2.4Ghz and second STA on 5Ghz
1146  * and NAN Disc on 2.4Ghz DBS
1147  * @PM_STA_5_STA_24_NAN_DISC_24_SMM: First STA on 5Ghz and second STA on 2.4Ghz
1148  * and NAN Disc on 2.4Ghz SMM
1149  * @PM_STA_5_STA_24_NAN_DISC_24_DBS: First STA on 5Ghz and second STA on 2.4Ghz
1150  * and NAN Disc on 2.4Ghz DBS
1151  * @PM_NAN_DISC_24_STA_5_STA_24_SMM: NAN Disc on 2.4Ghz and first STA on 5Ghz
1152  * and second STA on 2.4Ghz SMM
1153  * @PM_NAN_DISC_24_STA_5_STA_24_DBS: NAN Disc on 2.4Ghz and first STA on 5Ghz
1154  * and second STA on 2.4Ghz DBS
1155  * @PM_NAN_DISC_24_STA_24_STA_5_SMM: NAN Disc on 2.4Ghz and first STA on 2.4Ghz
1156  * and second STA on 5Ghz SMM
1157  * @PM_NAN_DISC_24_STA_24_STA_5_DBS: NAN Disc on 2.4Ghz and first STA on 2.4Ghz
1158  * and second STA on 5Ghz DBS
1159  * @PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS: ANY 2 link on 5 GHZ high mac
1160  * and one link on 5 GHZ low doing SBS
1161  * @PM_STA_24_SAP_5_HIGH_MCC_STA_5_LOW_SBS : First STA on 2.4 GHZ & SAP on high
1162  * 5 GHZ MCC on mac 0 and second STA on low 5 GHZ on mac1 doing SBS
1163  * @PM_STA_24_STA_5_HIGH_MCC_SAP_5_LOW_SBS : First STA on 2.4 GHZ & second STA
1164  * on high 5 GHZ MCC on mac 0 and SAP on high 5 GHZ on mac1 doing SBS
1165  * @PM_STA_SAP_5_HIGH_STA_5_LOW_SBS : First STA on high 5 GHZ & SAP on high
1166  * 5 GHZ SCC/MCC on mac0 and second STA on low 5 GHZ on mac1 doing SBS
1167  * @PM_STA_5_HIGH_SAP_24_MCC_STA_5_LOW_SBS : First STA on high 5 GHZ & SAP on
1168  * 2.4 GHZ MCC on mac0 and second STA on low 5 GHZ on mac1 doing SBS
1169  * @PM_STA_STA_5_HIGH_MCC_SAP_5_LOW_SBS : First STA on high 5 GHZ & Second STA
1170  * on high 5 GHZ MCC on mac0 and SAP on low 5 GHZ on mac1 doing SBS
1171  * @PM_STA_24_STA_5_MCC_SAP_5_HIGH_SBS: MLO STA 2+5/6 GHz, SAP on 5/6 GHz
1172  * high band, the current hw mode is SBS.
1173  * @PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS: Any 2 link on low 5 GHZ mac
1174  * and one link on high 5 GHZ freq doing SBS
1175  * @PM_STA_24_SAP_5_LOW_MCC_STA_5_HIGH_SBS : First STA on 2.4 GHZ & SAP on low
1176  * 5 GHZ MCC on mac 0 and second STA on high 5 GHZ on mac1 doing SBS
1177  * @PM_STA_24_STA_5_LOW_MCC_SAP_5_HIGH_SBS : First STA on 2.4 & second STA on
1178  * low 5G MCC on mac 0 and SAP on high 5g on mac1 doing SBS
1179  * @PM_STA_SAP_5_LOW_STA_5_HIGH_SBS : First STA on low 5 GHZ & SAP on low 5 GHZ
1180  * SCC/MCC on mac0 and second STA on high 5 GHZ on mac1 doing SBS
1181  * @PM_STA_5_LOW_SAP_24_MCC_STA_5_HIGH_SBS : First STA on low 5 GHZ & SAP on
1182  * 2.4 GHZ MCC on mac0 and second STA on high 5 GHZ on mac1 doing SBS
1183  * @PM_STA_STA_5_LOW_MCC_SAP_5_HIGH_SBS : First STA on high 5 GHZ & Second STA
1184  * on high 5 GHZ MCC on mac0 and SAP on low 5 GHZ on mac1 doing SBS
1185  * @PM_STA_24_STA_5_MCC_SAP_5_LOW_SBS: MLO STA 2+5/6 GHz, SAP on 5/6 GHz
1186  * low band, the current hw mode is SBS.
1187  * @PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS:
1188  * @PM_SAP_24_STA_5_STA_5_LOW_N_HIGH_SHARE_SBS: The 2.4 GHZ SAP creating MCC/SCC
1189  * with STA of low 5 GHZ or high 5 GHZ (dynamic SBS) on mac 0 and one STA on
1190  * high 5 GHZ or low 5 GHZ freq respectively on mac 1 doing SBS
1191  * @PM_STA_24_SAP_5_STA_5_LOW_N_HIGH_SHARE_SBS: The 2.4 GHZ STA creating MCC/SCC
1192  * with SAP of low 5 GHZ or high 5 GHZ (dynamic SBS) on mac 0 and one STA on
1193  * high 5 GHZ or low 5 GHZ freq respectively on mac 1 doing SBS
1194  * @PM_24_5_PLUS_5_LOW_OR_HIGH_SHARE_SBS: (not dynamic SBS) MLO STA 2+5/6 GHz,
1195  * SAP on 5/6 GHz, and target only support 2.4 GHz shared with 5 GHz low band
1196  * or 5 GHz high band but not both.
1197  * @PM_MAX_THREE_CONNECTION_MODE: Maximum enumeration
1198  */
1199 enum policy_mgr_three_connection_mode {
1200 	PM_STA_SAP_SCC_24_SAP_5_DBS,
1201 	PM_STA_SAP_SCC_5_SAP_24_DBS,
1202 	PM_24_SCC_MCC_PLUS_5_DBS,
1203 	PM_STA_SAP_24_STA_5_DBS = PM_24_SCC_MCC_PLUS_5_DBS,
1204 	PM_5_SCC_MCC_PLUS_24_DBS,
1205 	PM_STA_SAP_5_STA_24_DBS = PM_5_SCC_MCC_PLUS_24_DBS,
1206 	PM_STA_STA_5_SAP_24_DBS = PM_5_SCC_MCC_PLUS_24_DBS,
1207 	PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS,
1208 	PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS,
1209 	PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS,
1210 	PM_NAN_DISC_STA_24_NDI_5_DBS,
1211 	PM_NAN_DISC_NDI_24_STA_5_DBS,
1212 	PM_STA_NDI_5_NAN_DISC_24_DBS,
1213 	PM_STA_NDI_NAN_DISC_24_SMM,
1214 	PM_NAN_DISC_NDI_24_NDI_5_DBS,
1215 	PM_NDI_NDI_5_NAN_DISC_24_DBS,
1216 	PM_NDI_NDI_NAN_DISC_24_SMM,
1217 	PM_SAP_SAP_SCC_24_SAP_5_DBS,
1218 	PM_SAP_SAP_SCC_5_SAP_24_DBS,
1219 	PM_STA_STA_5_NAN_DISC_24_DBS,
1220 	PM_NAN_DISC_24_STA_STA_5_DBS,
1221 	PM_STA_STA_24_NAN_DISC_24_SMM,
1222 	PM_NAN_DISC_24_STA_STA_24_SMM,
1223 	PM_STA_24_STA_5_NAN_DISC_24_SMM,
1224 	PM_STA_24_STA_5_NAN_DISC_24_DBS,
1225 	PM_STA_5_STA_24_NAN_DISC_24_SMM,
1226 	PM_STA_5_STA_24_NAN_DISC_24_DBS,
1227 	PM_NAN_DISC_24_STA_5_STA_24_SMM,
1228 	PM_NAN_DISC_24_STA_5_STA_24_DBS,
1229 	PM_NAN_DISC_24_STA_24_STA_5_SMM,
1230 	PM_NAN_DISC_24_STA_24_STA_5_DBS,
1231 	PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1232 	PM_STA_24_SAP_5_HIGH_MCC_STA_5_LOW_SBS =
1233 		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1234 	PM_STA_24_STA_5_HIGH_MCC_SAP_5_LOW_SBS =
1235 		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1236 	PM_STA_SAP_5_HIGH_STA_5_LOW_SBS =
1237 		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1238 	PM_STA_5_HIGH_SAP_24_MCC_STA_5_LOW_SBS =
1239 		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1240 	PM_STA_STA_5_HIGH_MCC_SAP_5_LOW_SBS =
1241 		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1242 	PM_STA_24_STA_5_MCC_SAP_5_HIGH_SBS =
1243 		PM_MCC_SCC_5G_HIGH_PLUS_5_LOW_SBS,
1244 	PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1245 	PM_STA_24_SAP_5_LOW_MCC_STA_5_HIGH_SBS =
1246 		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1247 	PM_STA_24_STA_5_LOW_MCC_SAP_5_HIGH_SBS =
1248 		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1249 	PM_STA_SAP_5_LOW_STA_5_HIGH_SBS =
1250 		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1251 	PM_STA_5_LOW_SAP_24_MCC_STA_5_HIGH_SBS =
1252 		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1253 	PM_STA_STA_5_LOW_MCC_SAP_5_HIGH_SBS =
1254 		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1255 	PM_STA_24_STA_5_MCC_SAP_5_LOW_SBS =
1256 		PM_MCC_SCC_5G_LOW_PLUS_5_HIGH_SBS,
1257 	PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS,
1258 	PM_SAP_24_STA_5_STA_5_LOW_N_HIGH_SHARE_SBS =
1259 			PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS,
1260 	PM_STA_24_SAP_5_STA_5_LOW_N_HIGH_SHARE_SBS =
1261 			PM_24_5_PLUS_5_LOW_N_HIGH_SHARE_SBS,
1262 	PM_24_5_PLUS_5_LOW_OR_HIGH_SHARE_SBS,
1263 
1264 	PM_MAX_THREE_CONNECTION_MODE,
1265 };
1266 #endif
1267 
1268 /**
1269  * enum policy_mgr_conc_next_action - actions to be taken on old
1270  * connections.
1271  *
1272  * @PM_NOP: No action
1273  * @PM_DBS: switch to DBS mode
1274  * @PM_DBS_DOWNGRADE: switch to DBS mode & downgrade to 1x1
1275  * @PM_DBS_UPGRADE: switch to DBS mode & upgrade to 2x2
1276  * @PM_SINGLE_MAC: switch to MCC/SCC mode
1277  * @PM_SINGLE_MAC_UPGRADE: switch to MCC/SCC mode & upgrade to 2x2
1278  * @PM_SBS: switch to SBS mode
1279  * @PM_SBS_DOWNGRADE: switch to SBS mode & downgrade to 1x1
1280  * @PM_DOWNGRADE: downgrade to 1x1
1281  * @PM_UPGRADE: upgrade to 2x2
1282  * @PM_DBS1: switch to DBS 1
1283  * @PM_DBS1_DOWNGRADE: downgrade 2G beaconing entity to 1x1 and switch to DBS1.
1284  * @PM_DBS2: switch to DBS 2
1285  * @PM_DBS2_DOWNGRADE: downgrade 5G beaconing entity to 1x1 and switch to DBS2.
1286  * @PM_UPGRADE_5G: upgrade 5g beaconing entity to 2x2.
1287  * @PM_UPGRADE_2G: upgrade 2g beaconing entity to 2x2.
1288  * @PM_DOWNGRADE_BW: Downgrade SAP bandwidth.
1289  * @PM_UPGRADE_BW: Upgrade SAP bandwidth.
1290  * @PM_MAX_CONC_NEXT_ACTION: Max place holder
1291  *
1292  * These are generic IDs that identify the various roles
1293  * in the software system
1294  */
1295 enum policy_mgr_conc_next_action {
1296 	PM_NOP = 0,
1297 	PM_DBS,
1298 	PM_DBS_DOWNGRADE,
1299 	PM_DBS_UPGRADE,
1300 	PM_SINGLE_MAC,
1301 	PM_SINGLE_MAC_UPGRADE,
1302 	PM_SBS,
1303 	PM_SBS_DOWNGRADE,
1304 	PM_DOWNGRADE,
1305 	PM_UPGRADE,
1306 	PM_DBS1,
1307 	PM_DBS1_DOWNGRADE,
1308 	PM_DBS2,
1309 	PM_DBS2_DOWNGRADE,
1310 	PM_UPGRADE_5G,
1311 	PM_UPGRADE_2G,
1312 	PM_DOWNGRADE_BW,
1313 	PM_UPGRADE_BW,
1314 
1315 	PM_MAX_CONC_NEXT_ACTION
1316 };
1317 
1318 /**
1319  * enum policy_mgr_band - wifi band.
1320  *
1321  * @POLICY_MGR_BAND_24: 2.4 Ghz band
1322  * @POLICY_MGR_BAND_5: 5 Ghz band
1323  * @POLICY_MGR_ANY: to specify all band
1324  * @POLICY_MGR_MAX_BAND: Max place holder
1325  *
1326  * These are generic IDs that identify the various roles
1327  * in the software system
1328  */
1329 enum policy_mgr_band {
1330 	POLICY_MGR_BAND_24 = 0,
1331 	POLICY_MGR_BAND_5,
1332 	POLICY_MGR_ANY,
1333 	POLICY_MGR_MAX_BAND = POLICY_MGR_ANY,
1334 };
1335 
1336 /**
1337  * enum policy_mgr_conn_update_reason: Reason for conc connection update
1338  * @POLICY_MGR_UPDATE_REASON_TIMER_START: This is to decide whether to start the
1339  *                                        timer or not
1340  * @POLICY_MGR_UPDATE_REASON_SET_OPER_CHAN: Set probable operating channel
1341  * @POLICY_MGR_UPDATE_REASON_START_AP: Start AP
1342  * @POLICY_MGR_UPDATE_REASON_NORMAL_STA: Connection to Normal STA
1343  * @POLICY_MGR_UPDATE_REASON_OPPORTUNISTIC: Opportunistic HW mode update
1344  * @POLICY_MGR_UPDATE_REASON_NSS_UPDATE: NSS update
1345  * @POLICY_MGR_UPDATE_REASON_AFTER_CHANNEL_SWITCH: After Channel switch
1346  * @POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_STA: Before Channel switch for STA
1347  * @POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_SAP: Before Channel switch for SAP
1348  * @POLICY_MGR_UPDATE_REASON_PRE_CAC: Pre-CAC
1349  * @POLICY_MGR_UPDATE_REASON_PRI_VDEV_CHANGE: In Dual DBS HW, if the vdev based
1350  *        2x2 preference enabled, the vdev down may cause prioritized active
1351  *        vdev change, then DBS hw mode may needs to change from one DBS mode
1352  *        to the other DBS mode. This reason code indicates such condition.
1353  * @POLICY_MGR_UPDATE_REASON_NAN_DISCOVERY: NAN Discovery related
1354  * @POLICY_MGR_UPDATE_REASON_NDP_UPDATE: NAN Datapath related update
1355  * @POLICY_MGR_UPDATE_REASON_LFR2_ROAM: LFR2 Roaming
1356  * @POLICY_MGR_UPDATE_REASON_STA_CONNECT: STA/CLI connection to peer
1357  * @POLICY_MGR_UPDATE_REASON_LFR3_ROAM: LFR3 Roaming
1358  * @POLICY_MGR_UPDATE_REASON_MAX: Reason code to indicate that it's not a
1359  * valid operation, should always be maintained at the end of enum.
1360  */
1361 enum policy_mgr_conn_update_reason {
1362 	POLICY_MGR_UPDATE_REASON_TIMER_START,
1363 	POLICY_MGR_UPDATE_REASON_SET_OPER_CHAN,
1364 	POLICY_MGR_UPDATE_REASON_START_AP,
1365 	POLICY_MGR_UPDATE_REASON_NORMAL_STA,
1366 	POLICY_MGR_UPDATE_REASON_OPPORTUNISTIC,
1367 	POLICY_MGR_UPDATE_REASON_NSS_UPDATE,
1368 	POLICY_MGR_UPDATE_REASON_AFTER_CHANNEL_SWITCH,
1369 	POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_STA,
1370 	POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_SAP,
1371 	POLICY_MGR_UPDATE_REASON_PRE_CAC,
1372 	POLICY_MGR_UPDATE_REASON_PRI_VDEV_CHANGE,
1373 	POLICY_MGR_UPDATE_REASON_NAN_DISCOVERY,
1374 	POLICY_MGR_UPDATE_REASON_NDP_UPDATE,
1375 	POLICY_MGR_UPDATE_REASON_LFR2_ROAM,
1376 	POLICY_MGR_UPDATE_REASON_STA_CONNECT,
1377 	POLICY_MGR_UPDATE_REASON_LFR3_ROAM,
1378 	POLICY_MGR_UPDATE_REASON_MAX,
1379 };
1380 
1381 /**
1382  * enum hw_mode_bandwidth - bandwidth of wifi channel.
1383  * @HW_MODE_BW_NONE: no bandwidth configured
1384  * @HW_MODE_5_MHZ: 5 Mhz bandwidth
1385  * @HW_MODE_10_MHZ: 10 Mhz bandwidth
1386  * @HW_MODE_20_MHZ: 20 Mhz bandwidth
1387  * @HW_MODE_40_MHZ: 40 Mhz bandwidth
1388  * @HW_MODE_80_MHZ: 80 Mhz bandwidth
1389  * @HW_MODE_80_PLUS_80_MHZ: 80 Mhz plus 80 Mhz bandwidth
1390  * @HW_MODE_160_MHZ: 160 Mhz bandwidth
1391  * @HW_MODE_320_MHZ: 320 Mhz bandwidth
1392  * @HW_MODE_MAX_BANDWIDTH: Max place holder
1393  *
1394  * These are generic IDs that identify the various roles
1395  * in the software system
1396  */
1397 enum hw_mode_bandwidth {
1398 	HW_MODE_BW_NONE,
1399 	HW_MODE_5_MHZ,
1400 	HW_MODE_10_MHZ,
1401 	HW_MODE_20_MHZ,
1402 	HW_MODE_40_MHZ,
1403 	HW_MODE_80_MHZ,
1404 	HW_MODE_80_PLUS_80_MHZ,
1405 	HW_MODE_160_MHZ,
1406 	HW_MODE_320_MHZ,
1407 	HW_MODE_MAX_BANDWIDTH
1408 };
1409 
1410 /**
1411  * enum set_hw_mode_status - Status of set HW mode command
1412  * @SET_HW_MODE_STATUS_OK: command successful
1413  * @SET_HW_MODE_STATUS_EINVAL: Requested invalid hw_mode
1414  * @SET_HW_MODE_STATUS_ECANCELED: HW mode change cancelled
1415  * @SET_HW_MODE_STATUS_ENOTSUP: HW mode not supported
1416  * @SET_HW_MODE_STATUS_EHARDWARE: HW mode change prevented by hardware
1417  * @SET_HW_MODE_STATUS_EPENDING: HW mode change is pending
1418  * @SET_HW_MODE_STATUS_ECOEX: HW mode change conflict with Coex
1419  * @SET_HW_MODE_STATUS_ALREADY: Requested hw mode is already applied to FW.
1420  */
1421 enum set_hw_mode_status {
1422 	SET_HW_MODE_STATUS_OK,
1423 	SET_HW_MODE_STATUS_EINVAL,
1424 	SET_HW_MODE_STATUS_ECANCELED,
1425 	SET_HW_MODE_STATUS_ENOTSUP,
1426 	SET_HW_MODE_STATUS_EHARDWARE,
1427 	SET_HW_MODE_STATUS_EPENDING,
1428 	SET_HW_MODE_STATUS_ECOEX,
1429 	SET_HW_MODE_STATUS_ALREADY,
1430 };
1431 
1432 typedef void (*dual_mac_cb)(enum set_hw_mode_status status,
1433 		uint32_t scan_config,
1434 		uint32_t fw_mode_config);
1435 /**
1436  * enum policy_mgr_hw_mode_change - identify the HW mode switching to.
1437  *
1438  * @POLICY_MGR_HW_MODE_NOT_IN_PROGRESS: HW mode change not in progress
1439  * @POLICY_MGR_SMM_IN_PROGRESS: switching to SMM mode
1440  * @POLICY_MGR_DBS_IN_PROGRESS: switching to DBS mode
1441  * @POLICY_MGR_SBS_IN_PROGRESS: switching to SBS mode
1442  *
1443  * These are generic IDs that identify the various roles
1444  * in the software system
1445  */
1446 enum policy_mgr_hw_mode_change {
1447 	POLICY_MGR_HW_MODE_NOT_IN_PROGRESS = 0,
1448 	POLICY_MGR_SMM_IN_PROGRESS,
1449 	POLICY_MGR_DBS_IN_PROGRESS,
1450 	POLICY_MGR_SBS_IN_PROGRESS
1451 };
1452 
1453 /**
1454  * enum dbs_support - structure to define INI values and their meaning
1455  *
1456  * @ENABLE_DBS_CXN_AND_SCAN: Enable DBS support for connection and scan
1457  * @DISABLE_DBS_CXN_AND_SCAN: Disable DBS support for connection and scan
1458  * @DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN: disable dbs support for
1459  * connection but keep dbs support for scan
1460  * @DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN_WITH_ASYNC_SCAN_OFF: disable dbs support
1461  * for connection but keep dbs for scan but switch off the async scan
1462  * @ENABLE_DBS_CXN_AND_ENABLE_SCAN_WITH_ASYNC_SCAN_OFF: enable dbs support for
1463  * connection and scan but switch off the async scan
1464  * @ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN: Enable DBS support for connection and
1465  * disable DBS support for scan
1466  * @ENABLE_DBS_CXN_AND_DISABLE_SIMULTANEOUS_SCAN: Enable DBS
1467  * support for connection and disable simultaneous scan from
1468  * upper layer (DBS scan remains enabled in FW)
1469  */
1470 enum dbs_support {
1471 	ENABLE_DBS_CXN_AND_SCAN,
1472 	DISABLE_DBS_CXN_AND_SCAN,
1473 	DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN,
1474 	DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN_WITH_ASYNC_SCAN_OFF,
1475 	ENABLE_DBS_CXN_AND_ENABLE_SCAN_WITH_ASYNC_SCAN_OFF,
1476 	ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN,
1477 	ENABLE_DBS_CXN_AND_DISABLE_SIMULTANEOUS_SCAN,
1478 };
1479 
1480 /**
1481  * enum conn_6ghz_flag - structure to define connection 6ghz capable info
1482  * in policy mgr conn info struct
1483  *
1484  * @CONN_6GHZ_FLAG_VALID: The 6ghz flag is valid (has been initialized)
1485  * @CONN_6GHZ_FLAG_ACS_OR_USR_ALLOWED: AP is configured in 6ghz band capable
1486  *   by user:
1487  *   a. ACS channel range includes 6ghz.
1488  *   b. SAP is started in 6ghz fix channel.
1489  * @CONN_6GHZ_FLAG_SECURITY_ALLOWED: AP has security mode which is permitted in
1490  *   6ghz band.
1491  * @CONN_6GHZ_FLAG_NO_LEGACY_CLIENT: AP has no legacy client connected
1492  */
1493 enum conn_6ghz_flag {
1494 	CONN_6GHZ_FLAG_VALID = 0x0001,
1495 	CONN_6GHZ_FLAG_ACS_OR_USR_ALLOWED = 0x0002,
1496 	CONN_6GHZ_FLAG_SECURITY_ALLOWED = 0x0004,
1497 	CONN_6GHZ_FLAG_NO_LEGACY_CLIENT = 0x0008,
1498 };
1499 
1500 #ifdef WLAN_FEATURE_AFC_DCS_SKIP_ACS_RANGE
1501 /* To support DCS to 6 Ghz channel when AFC response receive */
1502 #define CONN_6GHZ_CAPABLE (CONN_6GHZ_FLAG_VALID | \
1503 			     CONN_6GHZ_FLAG_SECURITY_ALLOWED | \
1504 			     CONN_6GHZ_FLAG_NO_LEGACY_CLIENT)
1505 #else
1506 #define CONN_6GHZ_CAPABLE (CONN_6GHZ_FLAG_VALID | \
1507 			     CONN_6GHZ_FLAG_ACS_OR_USR_ALLOWED | \
1508 			     CONN_6GHZ_FLAG_SECURITY_ALLOWED | \
1509 			     CONN_6GHZ_FLAG_NO_LEGACY_CLIENT)
1510 #endif
1511 
1512 /**
1513  * struct policy_mgr_conc_connection_info - information of all existing
1514  * connections in the wlan system
1515  *
1516  * @mode: connection type
1517  * @freq: Channel frequency
1518  * @bw: channel bandwidth used for the connection
1519  * @mac: The HW mac it is running
1520  * @chain_mask: The original capability advertised by HW
1521  * @original_nss: nss negotiated at connection time
1522  * @vdev_id: vdev id of the connection
1523  * @in_use: if the table entry is active
1524  * @ch_flagext: Channel extension flags.
1525  * @conn_6ghz_flag: connection 6ghz capable flags
1526  */
1527 struct policy_mgr_conc_connection_info {
1528 	enum policy_mgr_con_mode mode;
1529 	uint32_t      freq;
1530 	enum hw_mode_bandwidth bw;
1531 	uint8_t       mac;
1532 	enum policy_mgr_chain_mode chain_mask;
1533 	uint32_t      original_nss;
1534 	uint32_t      vdev_id;
1535 	bool          in_use;
1536 	uint16_t      ch_flagext;
1537 	enum conn_6ghz_flag conn_6ghz_flag;
1538 };
1539 
1540 #ifdef WLAN_FEATURE_11BE_MLO
1541 /**
1542  * struct policy_mgr_disabled_ml_link_info - information of all existing
1543  * disabled ml link
1544  * @in_use: if the table entry is active
1545  * @mode: connection type
1546  * @freq: Channel frequency
1547  * @vdev_id: vdev id of the connection
1548  */
1549 struct policy_mgr_disabled_ml_link_info {
1550 	bool in_use;
1551 	enum policy_mgr_con_mode mode;
1552 	qdf_freq_t freq;
1553 	uint8_t vdev_id;
1554 };
1555 #endif
1556 
1557 /**
1558  * struct policy_mgr_hw_mode_params - HW mode params
1559  * @mac0_tx_ss: MAC0 Tx spatial stream
1560  * @mac0_rx_ss: MAC0 Rx spatial stream
1561  * @mac1_tx_ss: MAC1 Tx spatial stream
1562  * @mac1_rx_ss: MAC1 Rx spatial stream
1563  * @mac0_bw: MAC0 bandwidth
1564  * @mac1_bw: MAC1 bandwidth
1565  * @mac0_band_cap: mac0 band (5g/2g) capability
1566  * @dbs_cap: DBS capabality
1567  * @agile_dfs_cap: Agile DFS capabality
1568  * @sbs_cap: SBS capability
1569  * @emlsr_cap: eMLSR capability
1570  * @action_type: for dbs mode, the field indicates the "Action type" to be
1571  * used to switch to the mode. To help the hw mode validation.
1572  */
1573 struct policy_mgr_hw_mode_params {
1574 	uint8_t mac0_tx_ss;
1575 	uint8_t mac0_rx_ss;
1576 	uint8_t mac1_tx_ss;
1577 	uint8_t mac1_rx_ss;
1578 	uint8_t mac0_bw;
1579 	uint8_t mac1_bw;
1580 	uint8_t mac0_band_cap;
1581 	uint8_t dbs_cap;
1582 	uint8_t agile_dfs_cap;
1583 	uint8_t sbs_cap;
1584 	uint8_t emlsr_cap;
1585 	enum policy_mgr_conc_next_action action_type;
1586 };
1587 
1588 /**
1589  * struct policy_mgr_dual_mac_config - Dual MAC configuration
1590  * @scan_config: Scan configuration
1591  * @fw_mode_config: FW mode configuration
1592  * @set_dual_mac_cb: Callback function to be executed on response to the command
1593  */
1594 struct policy_mgr_dual_mac_config {
1595 	uint32_t scan_config;
1596 	uint32_t fw_mode_config;
1597 	dual_mac_cb set_dual_mac_cb;
1598 };
1599 
1600 /**
1601  * struct policy_mgr_hw_mode - Format of set HW mode
1602  * @hw_mode_index: Index of HW mode to be set
1603  * @set_hw_mode_cb: HDD set HW mode callback
1604  * @reason: Reason for HW mode change
1605  * @session_id: Session id
1606  * @next_action: next action to happen at policy mgr
1607  * @action: current hw change action to be done
1608  * @context: psoc context
1609  * @request_id: Request id provided by the requester, can be used while
1610  * calling callback to the requester
1611  */
1612 struct policy_mgr_hw_mode {
1613 	uint32_t hw_mode_index;
1614 	void *set_hw_mode_cb;
1615 	enum policy_mgr_conn_update_reason reason;
1616 	uint32_t session_id;
1617 	uint8_t next_action;
1618 	enum policy_mgr_conc_next_action action;
1619 	struct wlan_objmgr_psoc *context;
1620 	uint32_t request_id;
1621 };
1622 
1623 /**
1624  * struct policy_mgr_pcl_list - Format of PCL
1625  * @pcl_list: List of preferred channels
1626  * @weight_list: Weights of the PCL
1627  * @pcl_len: Number of channels in the PCL
1628  */
1629 struct policy_mgr_pcl_list {
1630 	uint32_t pcl_list[NUM_CHANNELS];
1631 	uint8_t weight_list[NUM_CHANNELS];
1632 	uint32_t pcl_len;
1633 };
1634 
1635 /**
1636  * struct policy_mgr_pcl_chan_weights - Params to get the valid weighed list
1637  * @pcl_list: Preferred channel list already sorted in the order of preference
1638  * @pcl_len: Length of the PCL
1639  * @saved_chan_list: Valid channel list updated as part of
1640  * WMA_UPDATE_CHAN_LIST_REQ
1641  * @saved_num_chan: Length of the valid channel list
1642  * @weighed_valid_list: Weights of the valid channel list. This will have one
1643  * to one mapping with valid_chan_list. FW expects channel order and size to be
1644  * as per the list provided in WMI_SCAN_CHAN_LIST_CMDID.
1645  * @weight_list: Weights assigned by policy manager
1646  */
1647 struct policy_mgr_pcl_chan_weights {
1648 	uint32_t pcl_list[NUM_CHANNELS];
1649 	uint32_t pcl_len;
1650 	uint32_t saved_chan_list[NUM_CHANNELS];
1651 	uint32_t saved_num_chan;
1652 	uint8_t weighed_valid_list[NUM_CHANNELS];
1653 	uint8_t weight_list[NUM_CHANNELS];
1654 };
1655 
1656 /**
1657  * struct policy_mgr_vdev_entry_info - vdev related param to be
1658  * used by policy manager
1659  * @type: type
1660  * @sub_type: sub type
1661  * @mhz: channel frequency in MHz
1662  * @chan_width: channel bandwidth
1663  * @mac_id: the mac on which vdev is on
1664  * @ch_flagext: Channel extension flags.
1665  */
1666 struct policy_mgr_vdev_entry_info {
1667 	uint32_t type;
1668 	uint32_t sub_type;
1669 	uint32_t mhz;
1670 	uint32_t chan_width;
1671 	uint32_t mac_id;
1672 	uint16_t ch_flagext;
1673 };
1674 
1675 /**
1676  * struct policy_mgr_freq_range - hw mode freq range for the pdev
1677  * @low_2ghz_freq: lower 2.4GHz channels
1678  * @high_2ghz_freq: higher 2.4 GHz channels
1679  * @low_5ghz_freq: lower 5 GHz channels
1680  * @high_5ghz_freq: higher 5 GHz channels
1681  */
1682 struct policy_mgr_freq_range {
1683 	qdf_freq_t low_2ghz_freq;
1684 	qdf_freq_t high_2ghz_freq;
1685 	qdf_freq_t low_5ghz_freq;
1686 	qdf_freq_t high_5ghz_freq;
1687 };
1688 
1689 /**
1690  * enum policy_mgr_mode - enum for host mode
1691  * @MODE_SMM:               Single mac mode
1692  * @MODE_DBS:               DBS mode
1693  * @MODE_SBS:               SBS mode with either high share or low share
1694  * @MODE_SBS_UPPER_SHARE:   Higher 5Ghz shared with 2.4Ghz
1695  * @MODE_SBS_LOWER_SHARE:   LOWER 5Ghz shared with 2.4Ghz
1696  * @MODE_EMLSR:             eMLSR mode
1697  * @MODE_EMLSR_SINGLE:      eMLSR single mode
1698  * @MODE_EMLSR_SPLIT:       eMLSR split mode
1699  * @MODE_HW_MAX: MAX
1700  */
1701 enum policy_mgr_mode {
1702 	MODE_SMM,
1703 	MODE_DBS,
1704 	MODE_SBS,
1705 	MODE_SBS_UPPER_SHARE,
1706 	MODE_SBS_LOWER_SHARE,
1707 	MODE_EMLSR,
1708 	MODE_EMLSR_SINGLE,
1709 	MODE_EMLSR_SPLIT,
1710 	MODE_HW_MAX,
1711 };
1712 
1713 /**
1714  * struct dbs_hw_mode_info - WLAN_DBS_HW_MODES_TLV Format
1715  * @hw_mode_list: WLAN_DBS_HW_MODE_LIST entries
1716  * @sbs_lower_band_end_freq: value with which range will be divided
1717  * @freq_range_caps: Initial capability and range for different modes for both
1718  *                   pdev
1719  * @cur_mac_freq_range: Current freq range for both pdev, this can be used to
1720  *                      reject if 2 home channels on a MAC, depending on opmode
1721  *                      and current HW mode.
1722  */
1723 struct dbs_hw_mode_info {
1724 	uint64_t *hw_mode_list;
1725 	qdf_freq_t sbs_lower_band_end_freq;
1726 	struct policy_mgr_freq_range freq_range_caps[MODE_HW_MAX][MAX_MAC];
1727 	struct policy_mgr_freq_range cur_mac_freq_range[MAX_MAC];
1728 };
1729 
1730 /**
1731  * struct dual_mac_config - Dual MAC configurations
1732  * @prev_scan_config: Previous scan configuration
1733  * @prev_fw_mode_config: Previous FW mode configuration
1734  * @cur_scan_config: Current scan configuration
1735  * @cur_fw_mode_config: Current FW mode configuration
1736  * @req_scan_config: Requested scan configuration
1737  * @req_fw_mode_config: Requested FW mode configuration
1738  */
1739 struct dual_mac_config {
1740 	uint32_t prev_scan_config;
1741 	uint32_t prev_fw_mode_config;
1742 	uint32_t cur_scan_config;
1743 	uint32_t cur_fw_mode_config;
1744 	uint32_t req_scan_config;
1745 	uint32_t req_fw_mode_config;
1746 };
1747 
1748 /**
1749  * enum policy_mgr_pri_id - vdev type priority id
1750  * @PM_STA_PRI_ID: station vdev type priority id
1751  * @PM_SAP_PRI_ID: sap vdev type priority id
1752  * @PM_P2P_GO_PRI_ID: p2p go vdev type priority id
1753  * @PM_P2P_CLI_PRI_ID: p2p cli vdev type priority id
1754  * @PM_MAX_PRI_ID: vdev type priority id max value
1755  */
1756 enum policy_mgr_pri_id {
1757 	PM_STA_PRI_ID = 1,
1758 	PM_SAP_PRI_ID,
1759 	PM_P2P_GO_PRI_ID,
1760 	PM_P2P_CLI_PRI_ID,
1761 	PM_MAX_PRI_ID = 0xF,
1762 };
1763 
1764 #define PM_GET_BAND_PREFERRED(_policy_) ((_policy_) & 0x1)
1765 #define PM_GET_VDEV_PRIORITY_ENABLED(_policy_) (((_policy_) & 0x2) >> 1)
1766 
1767 /**
1768  * struct policy_mgr_user_cfg - Policy manager user config variables
1769  * @enable2x2: 2x2 chain mask user config
1770  * @sub_20_mhz_enabled: Is 5 or 10 Mhz enabled
1771  */
1772 struct policy_mgr_user_cfg {
1773 	bool enable2x2;
1774 	bool sub_20_mhz_enabled;
1775 };
1776 
1777 /**
1778  * struct dbs_bw - Max BW supported in DBS mode
1779  * @mac0_bw: BW of MAC0
1780  * @mac1_bw: BW of MAC1
1781  */
1782 struct dbs_bw {
1783 	enum hw_mode_bandwidth mac0_bw;
1784 	enum hw_mode_bandwidth mac1_bw;
1785 };
1786 
1787 /**
1788  * struct dbs_nss - Number of spatial streams in DBS mode
1789  * @mac0_ss: Number of spatial streams on MAC0
1790  * @mac1_ss: Number of spatial streams on MAC1
1791  * @single_mac0_band_cap: Mac0 band capability for single mac hw mode
1792  */
1793 struct dbs_nss {
1794 	enum hw_mode_ss_config mac0_ss;
1795 	enum hw_mode_ss_config mac1_ss;
1796 	uint32_t single_mac0_band_cap;
1797 };
1798 
1799 /*
1800  * Max radio combination numbers
1801  */
1802 #define MAX_RADIO_COMBINATION 16
1803 
1804 /**
1805  * struct radio_combination - Radio combination
1806  * @hw_mode: hw mode type
1807  * @band_mask: band support type for each mac
1808  * @antenna: antenna support for each mac
1809  */
1810 struct radio_combination {
1811 	enum policy_mgr_mode hw_mode;
1812 	uint8_t band_mask[MAX_MAC];
1813 	uint8_t antenna[MAX_MAC];
1814 };
1815 
1816 /**
1817  * struct connection_info - connection information
1818  * @mac_id: The HW mac it is running
1819  * @vdev_id: vdev id
1820  * @channel: channel of the connection
1821  * @ch_freq: channel freq in Mhz
1822  */
1823 struct connection_info {
1824 	uint8_t mac_id;
1825 	uint8_t vdev_id;
1826 	uint8_t channel;
1827 	uint32_t ch_freq;
1828 };
1829 
1830 /**
1831  * struct go_plus_go_force_scc - structure to hold p2p go
1832  * params for forcescc restart
1833  *
1834  * @vdev_id: vdev id of first p2p go which needs to do csa
1835  * @ch_freq: ch freq of curr p2p go
1836  * @ch_width: ch width of curr p2p go
1837  */
1838 struct go_plus_go_force_scc {
1839 	uint8_t vdev_id;
1840 	uint32_t ch_freq;
1841 	uint32_t ch_width;
1842 };
1843 
1844 /**
1845  * struct sap_plus_go_force_scc - structure to hold
1846  * params for forcescc restart in sap plus go
1847  *
1848  * @reason: channel change reason code
1849  * @initiator_vdev_id: the first interface ID to trigger CSA
1850  * @responder_vdev_id: the second interface ID to follow CSA
1851  */
1852 struct sap_plus_go_force_scc {
1853 	enum sap_csa_reason_code reason;
1854 	uint8_t initiator_vdev_id;
1855 	uint8_t responder_vdev_id;
1856 };
1857 
1858 /**
1859  * struct sta_ap_intf_check_work_ctx - sta_ap_intf_check_work
1860  * related info
1861  * @psoc: pointer to PSOC object information
1862  * @go_plus_go_force_scc: structure to hold params of
1863  *			  curr and first p2p go ctx
1864  * @sap_plus_go_force_scc: sap p2p force SCC ctx
1865  * @nan_force_scc_in_progress: NAN force scc in progress
1866  */
1867 struct sta_ap_intf_check_work_ctx {
1868 	struct wlan_objmgr_psoc *psoc;
1869 	struct go_plus_go_force_scc go_plus_go_force_scc;
1870 	struct sap_plus_go_force_scc sap_plus_go_force_scc;
1871 	uint8_t nan_force_scc_in_progress;
1872 };
1873 
1874 /**
1875  * union conc_ext_flag - extended flags for concurrency check
1876  *
1877  * @mlo: the new connection is MLO
1878  * @mlo_link_assoc_connected: the new connection is secondary MLO link and
1879  *  the corresponding assoc link is connected
1880  * @value: uint32 value for extended flags
1881  */
1882 union conc_ext_flag {
1883 	struct {
1884 		uint32_t mlo: 1;
1885 		uint32_t mlo_link_assoc_connected: 1;
1886 	};
1887 
1888 	uint32_t value;
1889 };
1890 
1891 /**
1892  * enum indoor_conc_update_type - Indoor concurrency update type
1893  * @CONNECT: On a new STA connection
1894  * @DISCONNECT_WITHOUT_CONCURRENCY: On a STA disconnection with no active
1895  * sessions on the same frequency
1896  * @DISCONNECT_WITH_CONCURRENCY: On a STA disconnection with an active
1897  * session on the same frequency
1898  * @SWITCH_WITH_CONCURRENCY: On a STA roam or CSA to a different channel
1899  * with a concurrent SAP on previous frequency
1900  * @SWITCH_WITHOUT_CONCURRENCY: On a STA roam or CSA to a different channel
1901  * without any concurrent SAP on previous frequency
1902  */
1903 enum indoor_conc_update_type {
1904 	CONNECT,
1905 	DISCONNECT_WITHOUT_CONCURRENCY,
1906 	DISCONNECT_WITH_CONCURRENCY,
1907 	SWITCH_WITHOUT_CONCURRENCY,
1908 	SWITCH_WITH_CONCURRENCY,
1909 };
1910 
1911 #endif /* __WLAN_POLICY_MGR_PUBLIC_STRUCT_H */
1912