xref: /wlan-dirver/qca-wifi-host-cmn/utils/host_diag_log/inc/host_diag_core_event.h (revision 3149adf58a329e17232a4c0e58d460d025edd55a)
1 /*
2  * Copyright (c) 2014-2018 The Linux Foundation. All rights reserved.
3  *
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 #if !defined(__HOST_DIAG_CORE_EVENT_H)
29 #define __HOST_DIAG_CORE_EVENT_H
30 
31 /**=========================================================================
32 
33    \file  host_diag_core_event.h
34 
35    \brief WLAN UTIL host DIAG Events
36 
37    Definitions for DIAG Events
38 
39    ========================================================================*/
40 
41 /* $Header$ */
42 
43 /*--------------------------------------------------------------------------
44    Include Files
45    ------------------------------------------------------------------------*/
46 #include "qdf_types.h"
47 #include "i_host_diag_core_event.h"
48 
49 /*--------------------------------------------------------------------------
50    Preprocessor definitions and constants
51    ------------------------------------------------------------------------*/
52 #ifdef __cplusplus
53 extern "C" {
54 #endif /* __cplusplus */
55 
56 #define WAKE_LOCK_NAME_LEN 80
57 
58 /*-------------------------------------------------------------------------
59    Event ID: EVENT_WLAN_SECURITY
60    ------------------------------------------------------------------------*/
61 typedef struct {
62 	uint8_t eventId;
63 	uint8_t authMode;
64 	uint8_t encryptionModeUnicast;
65 	uint8_t encryptionModeMulticast;
66 	uint8_t pmkIDMatch;
67 	uint8_t bssid[6];
68 	uint8_t keyId;
69 	uint8_t status;
70 } host_event_wlan_security_payload_type;
71 
72 /*-------------------------------------------------------------------------
73    Event ID: EVENT_WLAN_STATUS_V2
74    ------------------------------------------------------------------------*/
75 typedef struct {
76 	uint8_t eventId;
77 	uint8_t ssid[32];
78 	uint8_t bssType;
79 	uint8_t rssi;
80 	uint8_t channel;
81 	uint8_t qosCapability;
82 	uint8_t authType;
83 	uint8_t encryptionType;
84 	uint8_t reason;
85 	uint8_t reasonDisconnect;
86 } host_event_wlan_status_payload_type;
87 
88 /*-------------------------------------------------------------------------
89    Event ID: EVENT_WLAN_HANDOFF
90    ------------------------------------------------------------------------*/
91 typedef struct {
92 	uint8_t eventId;
93 	uint8_t currentApBssid[6];
94 	uint8_t currentApRssi;
95 	uint8_t candidateApBssid[6];
96 	uint8_t candidateApRssi;
97 } host_event_wlan_handoff_payload_type;
98 
99 /*-------------------------------------------------------------------------
100    Event ID: EVENT_WLAN_VCC
101    ------------------------------------------------------------------------*/
102 typedef struct {
103 	uint8_t eventId;
104 	uint8_t rssi;
105 	uint8_t txPer;
106 	uint8_t rxPer;
107 	int linkQuality;
108 } host_event_wlan_vcc_payload_type;
109 
110 /*-------------------------------------------------------------------------
111    Event ID: EVENT_WLAN_QOS
112    ------------------------------------------------------------------------*/
113 typedef struct {
114 	uint8_t eventId;
115 	uint8_t reasonCode;
116 } host_event_wlan_qos_payload_type;
117 
118 /*-------------------------------------------------------------------------
119    Event ID: EVENT_WLAN_PE
120    ------------------------------------------------------------------------*/
121 typedef struct {
122 	char bssid[6];
123 	uint16_t event_type;
124 	uint16_t sme_state;
125 	uint16_t mlm_state;
126 	uint16_t status;
127 	uint16_t reason_code;
128 } host_event_wlan_pe_payload_type;
129 
130 /*-------------------------------------------------------------------------
131    Event ID: EVENT_WLAN_ADD_BLOCK_ACK_SUCCESS
132    ------------------------------------------------------------------------*/
133 typedef struct {
134 	char ucBaPeerMac[6];
135 	uint8_t ucBaTid;
136 	uint8_t ucBaBufferSize;
137 	uint16_t usBaSSN;
138 	uint8_t fInitiator;
139 } host_event_wlan_add_block_ack_success_payload_type;
140 
141 /*-------------------------------------------------------------------------
142    Event ID: EVENT_WLAN_ADD_BLOCK_ACK_FAILED
143    ------------------------------------------------------------------------*/
144 typedef struct {
145 	char ucBaPeerMac[6];
146 	uint8_t ucBaTid;
147 	uint8_t ucReasonCode;
148 	uint8_t fInitiator;
149 } host_event_wlan_add_block_ack_failed_payload_type;
150 
151 /*-------------------------------------------------------------------------
152    Event ID: EVENT_WLAN_DELETE_BLOCK_ACK_SUCCESS
153    ------------------------------------------------------------------------*/
154 typedef struct {
155 	char ucBaPeerMac[6];
156 	uint8_t ucBaTid;
157 	uint8_t ucDeleteReasonCode;
158 } host_event_wlan_add_block_ack_deleted_payload_type;
159 
160 /*-------------------------------------------------------------------------
161    Event ID: EVENT_WLAN_DELETE_BLOCK_ACK_FAILED
162    ------------------------------------------------------------------------*/
163 typedef struct {
164 	char ucBaPeerMac[6];
165 	uint8_t ucBaTid;
166 	uint8_t ucDeleteReasonCode;
167 	uint8_t ucFailReasonCode;
168 } host_event_wlan_add_block_ack_delete_failed_payload_type;
169 
170 /*-------------------------------------------------------------------------
171    Event ID: EVENT_WLAN_BSS_PROTECTION
172    ------------------------------------------------------------------------*/
173 typedef struct {
174 	uint8_t event_type;
175 	uint8_t prot_type;
176 } host_event_wlan_bss_prot_payload_type;
177 
178 /*-------------------------------------------------------------------------
179    Event ID: EVENT_WLAN_BRINGUP_STATUS
180    ------------------------------------------------------------------------*/
181 typedef struct {
182 	uint16_t wlanStatus;
183 	char driverVersion[10];
184 } host_event_wlan_bringup_status_payload_type;
185 
186 /*-------------------------------------------------------------------------
187    Event ID: EVENT_WLAN_POWERSAVE_WOW
188    ------------------------------------------------------------------------*/
189 typedef struct {
190 	uint8_t event_subtype;
191 	uint8_t wow_type;
192 	uint8_t wow_magic_pattern[6];
193 	uint8_t wow_del_ptrn_id;
194 	uint8_t wow_wakeup_cause;
195 	uint8_t wow_wakeup_cause_pbm_ptrn_id;
196 } host_event_wlan_powersave_wow_payload_type;
197 
198 /*-------------------------------------------------------------------------
199   Event ID: EVENT_WLAN_POWERSAVE_WOW_STATS
200   ------------------------------------------------------------------------*/
201 /**
202  * host_event_wlan_powersave_wow_stats - Structure holding wow stats information
203  * @wow_ucast_wake_up_count: wow unicast packet wakeup count
204  * @wow_bcast_wake_up_count: wow broadcast packet wakeup count
205  * @wow_ipv4_mcast_wake_up_count: wow ipv4 multicast packet wakeup count
206  * @wow_ipv6_mcast_wake_up_count: wow ipv6 multicast packet wakeup count
207  * @wow_ipv6_mcast_ra_stats: wow ipv6 multicast router advertisement
208  *                           packet wakeup count
209  * @wow_ipv6_mcast_ns_stats: wow ipv6 multicast Neighbor Solicitation
210  *                           packet wakeup count
211  * @wow_ipv6_mcast_na_stats: wow ipv6 multicast address space
212  *                           packet wakeup count
213  * @wow_pno_match_wake_up_count: wow preferred network offload match
214  *                           packet wakeup count
215  * @wow_pno_complete_wake_up_count: wow preferred network offload complete
216  *                                  packet wakeup count
217  * @wow_gscan_wake_up_count: wow external scan packet wakeup count
218  * @wow_low_rssi_wake_up_count: wow low rssi packet wakeup count
219  * @wow_rssi_breach_wake_up_count: wow rssi breach packet wakeup count
220  * @wow_icmpv4_count: wow icmpv4 packet count
221  * @wow_icmpv6_count: wow icmpv6 packet count
222  * @wow_oem_response_wake_up_count: wow  oem response packet wakeup count
223  *
224  * This structure contains the wow stats information related to diag event
225  */
226 struct host_event_wlan_powersave_wow_stats {
227 	uint32_t    wow_ucast_wake_up_count;
228 	uint32_t    wow_bcast_wake_up_count;
229 	uint32_t    wow_ipv4_mcast_wake_up_count;
230 	uint32_t    wow_ipv6_mcast_wake_up_count;
231 	uint32_t    wow_ipv6_mcast_ra_stats;
232 	uint32_t    wow_ipv6_mcast_ns_stats;
233 	uint32_t    wow_ipv6_mcast_na_stats;
234 	uint32_t    wow_pno_match_wake_up_count;
235 	uint32_t    wow_pno_complete_wake_up_count;
236 	uint32_t    wow_gscan_wake_up_count;
237 	uint32_t    wow_low_rssi_wake_up_count;
238 	uint32_t    wow_rssi_breach_wake_up_count;
239 	uint32_t    wow_icmpv4_count;
240 	uint32_t    wow_icmpv6_count;
241 	uint32_t    wow_oem_response_wake_up_count;
242 	uint32_t    Reserved_1;
243 	uint32_t    Reserved_2;
244 	uint32_t    Reserved_3;
245 	uint32_t    Reserved_4;
246 };
247 
248 /*-------------------------------------------------------------------------
249    Event ID: EVENT_WLAN_BTC
250    ------------------------------------------------------------------------*/
251 typedef struct {
252 	uint8_t eventId;
253 	uint8_t btAddr[6];
254 	uint16_t connHandle;
255 	uint8_t connStatus;
256 	uint8_t linkType;
257 	uint8_t scoInterval;
258 	uint8_t scoWindow;
259 	uint8_t retransWindow;
260 	uint8_t mode;
261 } host_event_wlan_btc_type;
262 
263 /*-------------------------------------------------------------------------
264   Event ID: EVENT_WLAN_EAPOL
265   ------------------------------------------------------------------------*/
266 /**
267  * struct host_event_wlan_eapol - Structure holding the eapol information
268  * @event_sub_type:	0-Transmitted, 1-Received
269  * @eapol_packet_type:	0 - EAP Start, 1 - EAPOL Start, 2 - EAPOL Logoff
270 			3 - EAPOL Key, 4 - EAPOL Encapsulated Alert
271  * @eapol_key_info:	This field from the driver is in big endian format.
272  *			So, the masks .0x8013. can be used to extract the
273  *			message type. After masking, the values corresponding
274  *			to messages 1/2/3/4 are given below:
275  *			Msg. 1	0x8000
276  *			Msg. 2	0x0001
277  *			Msg. 3	0x8013
278  *			Msg. 4	0x0003
279  * @eapol_rate:		Rate at which the frame is received
280  * @dest_addr:		Destination address
281  * @src_addr:		Source address
282  *
283  * This structure contains the EAPOL information related to logging
284  */
285 struct host_event_wlan_eapol {
286 	uint8_t   event_sub_type;
287 	uint8_t   eapol_packet_type;
288 	uint16_t  eapol_key_info;
289 	uint16_t  eapol_rate;
290 	uint8_t   dest_addr[6];
291 	uint8_t   src_addr[6];
292 };
293 
294 /*-------------------------------------------------------------------------
295   Event ID: EVENT_WLAN_LOW_RESOURCE_FAILURE
296   ------------------------------------------------------------------------*/
297 /**
298  * struct host_event_wlan_low_resource_failure - Structure holding the
299  * low resource failure information
300  * @event_sub_type: Gives further information about reason for
301  * low resource condition
302  *
303  * This structure will hold the low resource failure information
304  */
305 struct host_event_wlan_low_resource_failure {
306 	uint8_t event_sub_type;
307 };
308 
309 /**
310  * enum resource_failure_type - Reason for low resource failure condition
311  * @WIFI_EVENT_MEMORY_FAILURE: Memory failure
312  *
313  * This enum has the reason codes why the low resource situation is observed
314  */
315 enum resource_failure_type {
316 	WIFI_EVENT_MEMORY_FAILURE,
317 };
318 
319 /*-------------------------------------------------------------------------
320   Event ID: EVENT_WLAN_WAKE_LOCK
321   ------------------------------------------------------------------------*/
322 /**
323  * struct host_event_wlan_wake_lock - Structure holding the wakelock information
324  * @status: Whether the wakelock is taken/released
325  * @reason: Reason for taking this wakelock
326  * @timeout: Timeout value in case of timed wakelocks
327  * @name_len: Length of the name of the wakelock that will follow
328  * @name: Name of the wakelock
329  *
330  * This structure will hold the wakelock information
331  */
332 struct host_event_wlan_wake_lock {
333 	uint32_t status;
334 	uint32_t reason;
335 	uint32_t timeout;
336 	uint32_t name_len;
337 	char     name[WAKE_LOCK_NAME_LEN];
338 };
339 
340 /*-------------------------------------------------------------------------
341   Event ID: EVENT_WLAN_LOG_COMPLETE
342   ------------------------------------------------------------------------*/
343 /**
344  * struct host_event_wlan_log_complete - Holds log completion details
345  * @is_fatal: Indicates if the event is fatal or not
346  * @indicator: Source of the bug report - Framework/Host/Firmware
347  * @reason_code: Reason for triggering bug report
348  * @reserved: Reserved field
349  *
350  * This structure holds the log completion related information
351  */
352 struct host_event_wlan_log_complete {
353 	uint32_t is_fatal;
354 	uint32_t indicator;
355 	uint32_t reason_code;
356 	uint32_t reserved;
357 };
358 
359 /*-------------------------------------------------------------------------
360   Event ID: EVENT_WLAN_STA_KICKOUT
361   ------------------------------------------------------------------------*/
362 /**
363  * struct host_event_wlan_kickout - Holds diag event details
364  * @reasoncode: Indicates the reasoncode of event
365  * @peer_macaddr: Indicates the peer macaddr
366  * @vdev_id: Indicate unique id for identifying the VDEV
367  *
368  * This structure holds the diag event related information
369  */
370 
371 struct host_event_wlan_kickout {
372 	uint32_t reasoncode;
373 	uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
374 	uint8_t vdev_id;
375 };
376 
377 /*-------------------------------------------------------------------------
378   Event ID: EVENT_WLAN_SOFTAP_DATASTALL/EVENT_WLAN_STA_DATASTALL
379   ------------------------------------------------------------------------*/
380 /**
381  * struct host_event_wlan_softap_datastall - Holds diag event details
382  * @reason: Indicates the reason of event
383  *
384  *This structure holds the host diag event related information
385  */
386 
387 struct host_event_wlan_datastall {
388 	uint32_t reason;
389 };
390 
391 /*-------------------------------------------------------------------------
392   Event ID: EVENT_WLAN_SSR_REINIT_SUBSYSTEM
393   ------------------------------------------------------------------------*/
394 /**
395  * struct host_event_wlan_ssr_reinit - Holds diag event details
396  * @status: Indicates the status of event
397  *
398  *This structure holds the host diag event related information
399  */
400 
401 struct host_event_wlan_ssr_reinit {
402 	uint32_t status;
403 };
404 
405 /*-------------------------------------------------------------------------
406   Event ID: EVENT_WLAN_SSR_SHUTDOWN_SUBSYSTEM
407   ------------------------------------------------------------------------*/
408 /**
409  * struct host_event_wlan_ssr_shutdown - Holds diag event details
410  * @status: Indicates the status of event
411  *
412  *This structure holds the host diag event related information
413  */
414 
415 struct host_event_wlan_ssr_shutdown {
416 	uint32_t status;
417 };
418 
419 
420 /*-------------------------------------------------------------------------
421    Function declarations and documenation
422    ------------------------------------------------------------------------*/
423 /**
424  * enum host_sta_kickout_events - Enum containing sta kickout subtype
425  * @HOST_STA_KICKOUT_REASON_BMISS: Indicate sta got disconnected reason
426  * beacon miss
427  * @HOST_STA_KICKOUT_REASON_XRETRY: Indicate sta got disconnected reason xretry
428  * @HOST_STA_KICKOUT_REASON_UNSPECIFIED: Indicate sta disconnection
429  * reason unspecified
430  * @HOST_STA_KICKOUT_REASON_KEEP_ALIVE: Indicate sta is disconnected
431  * because of keep alive
432  * @HOST_STA_KICKOUT_REASON_BTM: BTM request from AP with disassoc imminent
433  * reason
434  *
435  * This enum contains the event subtype
436  */
437 enum host_sta_kickout_events {
438 	HOST_STA_KICKOUT_REASON_BMISS,
439 	HOST_STA_KICKOUT_REASON_XRETRY,
440 	HOST_STA_KICKOUT_REASON_UNSPECIFIED,
441 	HOST_STA_KICKOUT_REASON_KEEP_ALIVE,
442 	HOST_STA_KICKOUT_REASON_BTM,
443 };
444 
445 /*-------------------------------------------------------------------------
446    Function declarations and documenation
447    ------------------------------------------------------------------------*/
448 /**
449  * enum host_datastall_events - Enum containing datastall subtype
450  * @DATA_STALL_NONE: Indicate no data stall
451  * @FW_VDEV_PAUSE: Indicate FW vdev Pause
452  * @HWSCHED_CMD_FILTER:Indicate HW sched command filter
453  * @HWSCHED_CMD_FLUSH: Indicate HW sched command flush
454  * @FW_RX_REFILL_FAILED:Indicate FW rx refill failed
455  * @FW_RX_FCS_LEN_ERROR:Indicate FW fcs len error
456  * @FW_WDOG_ERRORS:Indicate watchdog error
457  * @FW_BB_WDOG_ERROR:Indicate BB watchdog error
458  * @STA_TX_TIMEOUT: Indicate sta tx timeout
459  * @SOFTAP_TX_TIMEOUT:Indicate softap tx timeout
460  * @NUD_FAILURE: Indicare NUD Failure
461  *
462  * This enum contains the event subtype
463  */
464 enum host_datastall_events {
465 	DATA_STALL_NONE,
466 	FW_VDEV_PAUSE,
467 	HWSCHED_CMD_FILTER,
468 	HWSCHED_CMD_FLUSH,
469 	FW_RX_REFILL_FAILED,
470 	FW_RX_FCS_LEN_ERROR,
471 	FW_WDOG_ERRORS,
472 	FW_BB_WDOG_ERROR,
473 	STA_TX_TIMEOUT,
474 	SOFTAP_TX_TIMEOUT,
475 	NUD_FAILURE,
476 };
477 
478 /*-------------------------------------------------------------------------
479   Function declarations and documenation
480   ------------------------------------------------------------------------*/
481 /**
482  * enum host_ssr_events - Enum containing ssr subtype
483  * @SSR_SUB_SYSTEM_REINIT: Indicate ssr reinit state
484  * @SSR_SUB_SYSTEM_SHUTDOWN: Indicate ssr shutdown state
485  *
486  * This enum contains the event subtype
487  */
488 enum host_ssr_events {
489 	SSR_SUB_SYSTEM_REINIT,
490 	SSR_SUB_SYSTEM_SHUTDOWN,
491 };
492 
493 /**
494  * struct host_event_tdls_teardown - tdls teardown diag event
495  * @reason: reason for tear down
496  * @peer_mac: peer mac
497  *
498  * This structure contains tdls teardown diag event info
499  */
500 struct host_event_tdls_teardown {
501 	uint32_t reason;
502 	uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
503 };
504 
505 /**
506  * struct host_event_tdls_enable_link - tdls enable link event
507  * @peer_mac: peer mac
508  * @is_off_chan_supported: if off channel supported
509  * @is_off_chan_configured: if off channel configured
510  * @is_off_chan_established: if off channel established
511  *
512  * This structure contain tdls enable link diag event info
513  */
514 struct host_event_tdls_enable_link {
515 	uint8_t   peer_mac[QDF_MAC_ADDR_SIZE];
516 	uint8_t   is_off_chan_supported;
517 	uint8_t   is_off_chan_configured;
518 	uint8_t   is_off_chan_established;
519 };
520 
521 /**
522  * struct host_event_suspend - suspend/resume state
523  * @state: suspend/resume state
524  *
525  * This structure contains suspend resume diag event info
526  */
527 struct host_event_suspend {
528 	uint8_t state;
529 };
530 
531 /**
532  * struct host_event_offload_req - offload state
533  * @offload_type: offload type
534  * @state: enabled or disabled state
535  *
536  * This structure contains offload diag event info
537  */
538 struct host_event_offload_req {
539 	uint8_t offload_type;
540 	uint8_t state;
541 };
542 
543 /**
544  * struct host_event_tdls_scan_rejected - scan
545  * rejected due to tdls
546  * @status: rejected status
547  *
548  * This structure contains scan rejected due to
549  * tdls event info
550  */
551 struct host_event_tdls_scan_rejected {
552 	uint8_t status;
553 };
554 
555 /**
556  * struct host_event_tdls_tx_rx_mgmt - for TX RX management frame
557  * @event_id: event ID
558  * @tx_rx: tx or rx
559  * @type: type of frame
560  * @action_sub_type: action frame type
561  * @peer_mac: peer mac
562  *
563  * This structure contains tdls TX RX management frame info
564  */
565 struct host_event_tdls_tx_rx_mgmt {
566 	uint8_t event_id;
567 	uint8_t tx_rx;
568 	uint8_t type;
569 	uint8_t action_sub_type;
570 	uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
571 };
572 
573 /*-------------------------------------------------------------------------
574    Function declarations and documenation
575    ------------------------------------------------------------------------*/
576 /**
577  * enum wifi_connectivity_events - Enum containing EAPOL sub type
578  * @WIFI_EVENT_DRIVER_EAPOL_FRAME_TRANSMIT_REQUESTED:	EAPOL transmitted
579  * @WIFI_EVENT_DRIVER_EAPOL_FRAME_RECEIVED:		EAPOL received
580  *
581  * This enum contains the EAPOL subtype
582  */
583 enum wifi_connectivity_events {
584 	WIFI_EVENT_DRIVER_EAPOL_FRAME_TRANSMIT_REQUESTED,
585 	WIFI_EVENT_DRIVER_EAPOL_FRAME_RECEIVED,
586 };
587 
588 /**
589  * enum wake_lock_reason - Reason for taking/releasing wakelock
590  * @WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT: Driver initialization
591  * @WIFI_POWER_EVENT_WAKELOCK_DRIVER_REINIT: Driver re-initialization
592  * @WIFI_POWER_EVENT_WAKELOCK_DRIVER_EXIT: Driver shutdown
593  * @WIFI_POWER_EVENT_WAKELOCK_SCAN: Scan request/response handling
594  * @WIFI_POWER_EVENT_WAKELOCK_EXT_SCAN: Extended scan request/response handling
595  * @WIFI_POWER_EVENT_WAKELOCK_RESUME_WLAN: Driver resume
596  * @WIFI_POWER_EVENT_WAKELOCK_ROC: Remain on channel request/response handling
597  * @WIFI_POWER_EVENT_WAKELOCK_AUTO_SUSPEND: Auto suspend related handling
598  * @WIFI_POWER_EVENT_WAKELOCK_IPA: IPA related handling
599  * @WIFI_POWER_EVENT_WAKELOCK_ADD_STA: Addition of STA
600  * @WIFI_POWER_EVENT_WAKELOCK_HOLD_RX: Wakelocks taken for receive
601  * @WIFI_POWER_EVENT_WAKELOCK_SAP: SoftAP related wakelocks
602  * @WIFI_POWER_EVENT_WAKELOCK_WOW: WoW feature related
603  * @WIFI_POWER_EVENT_WAKELOCK_PNO: PNO feature related
604  * @WIFI_POWER_EVENT_WAKELOCK_DEL_STA: Deletion of a station
605  * @WIFI_POWER_EVENT_WAKELOCK_DFS: DFS related wakelocks
606  * @WIFI_POWER_EVENT_WAKELOCK_WMI_CMD_RSP: Firmware response
607  * @WIFI_POWER_EVENT_WAKELOCK_MISC: Miscellaneous wakelocks
608  * @WIFI_POWER_EVENT_WAKELOCK_DHCP: DHCP negotiation under way
609  * @WIFI_POWER_EVENT_WAKELOCK_CONNECT: connection in progress
610  * @WIFI_POWER_EVENT_WAKELOCK_IFACE_CHANGE_TIMER: iface change timer running
611  * @WIFI_POWER_EVENT_WAKELOCK_MONITOR_MODE: Montitor mode wakelock
612  *
613  * Indicates the reason for which the wakelock was taken/released
614  */
615 enum wake_lock_reason {
616 	WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT,
617 	WIFI_POWER_EVENT_WAKELOCK_DRIVER_REINIT,
618 	WIFI_POWER_EVENT_WAKELOCK_DRIVER_EXIT,
619 	WIFI_POWER_EVENT_WAKELOCK_SCAN,
620 	WIFI_POWER_EVENT_WAKELOCK_EXT_SCAN,
621 	WIFI_POWER_EVENT_WAKELOCK_RESUME_WLAN,
622 	WIFI_POWER_EVENT_WAKELOCK_ROC,
623 	WIFI_POWER_EVENT_WAKELOCK_AUTO_SUSPEND,
624 	WIFI_POWER_EVENT_WAKELOCK_IPA,
625 	WIFI_POWER_EVENT_WAKELOCK_ADD_STA,
626 	WIFI_POWER_EVENT_WAKELOCK_HOLD_RX,
627 	WIFI_POWER_EVENT_WAKELOCK_SAP,
628 	WIFI_POWER_EVENT_WAKELOCK_WOW,
629 	WIFI_POWER_EVENT_WAKELOCK_PNO,
630 	WIFI_POWER_EVENT_WAKELOCK_DEL_STA,
631 	WIFI_POWER_EVENT_WAKELOCK_DFS,
632 	WIFI_POWER_EVENT_WAKELOCK_WMI_CMD_RSP,
633 	WIFI_POWER_EVENT_WAKELOCK_MISC,
634 	WIFI_POWER_EVENT_WAKELOCK_DHCP,
635 	WIFI_POWER_EVENT_WAKELOCK_CONNECT,
636 	WIFI_POWER_EVENT_WAKELOCK_IFACE_CHANGE_TIMER,
637 	WIFI_POWER_EVENT_WAKELOCK_MONITOR_MODE,
638 };
639 
640 #ifdef __cplusplus
641 }
642 #endif /* __cplusplus */
643 #endif /* __HOST_DIAG_CORE_EVENT_H */
644