xref: /wlan-dirver/qca-wifi-host-cmn/qdf/inc/qdf_platform.h (revision a175314c51a4ce5cec2835cc8a8c7dc0c1810915)
1 /*
2  * Copyright (c) 2018 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /**
20  * DOC: qdf_platform.h
21  * This file defines platform API abstractions.
22  */
23 
24 #ifndef _QDF_PLATFORM_H
25 #define _QDF_PLATFORM_H
26 
27 /**
28  * qdf_self_recovery_callback() - callback for self recovery
29  *
30  * Return: none
31  */
32 typedef void (*qdf_self_recovery_callback)(enum qdf_hang_reason);
33 
34 /**
35  * qdf_ssr_callback() - callback for ssr
36  *
37  * Return: true if fw is down and false if fw is not down
38  */
39 typedef void (*qdf_ssr_callback)(const char *);
40 
41 /**
42  * qdf_is_module_state_transitioning_cb() - callback to check module state
43  *
44  * Return: true if module is in transition, else false
45  */
46 typedef int (*qdf_is_module_state_transitioning_cb)(void);
47 
48 /**
49  * qdf_is_fw_down_callback() - callback to query if fw is down
50  *
51  * Return: true if fw is down and false if fw is not down
52  */
53 typedef bool (*qdf_is_fw_down_callback)(void);
54 
55 /**
56  * qdf_register_fw_down_callback() - API to register fw down callback
57  * @is_fw_down: callback to query if fw is down or not
58  *
59  * Return: none
60  */
61 void qdf_register_fw_down_callback(qdf_is_fw_down_callback is_fw_down);
62 
63 /**
64  * qdf_is_fw_down() - API to check if fw is down or not
65  *
66  * Return: true: if fw is down
67  *	   false: if fw is not down
68  */
69 bool qdf_is_fw_down(void);
70 
71 /**
72  * qdf_register_self_recovery_callback() - register self recovery callback
73  * @callback:  self recovery callback
74  *
75  * Return: None
76  */
77 void qdf_register_self_recovery_callback(qdf_self_recovery_callback callback);
78 
79 /**
80  * qdf_trigger_self_recovery () - tirgger self recovery
81  *
82  * Return: None
83  */
84 void qdf_trigger_self_recovery(void);
85 
86 /**
87  * qdf_register_ssr_protect_callbacks() - register [un]protect callbacks
88  *
89  * Return: None
90  */
91 void qdf_register_ssr_protect_callbacks(qdf_ssr_callback protect,
92 					qdf_ssr_callback unprotect);
93 
94 /**
95  * qdf_ssr_protect() - start SSR protection
96  *
97  * Return: None
98  */
99 void qdf_ssr_protect(const char *caller);
100 
101 /**
102  * qdf_ssr_unprotect() - remove SSR protection
103  *
104  * Return: None
105  */
106 void qdf_ssr_unprotect(const char *caller);
107 
108 /**
109  * qdf_register_module_state_query_callback() - register module state query
110  *
111  * Return: None
112  */
113 void qdf_register_module_state_query_callback(
114 			qdf_is_module_state_transitioning_cb query);
115 
116 /**
117  * qdf_is_module_state_transitioning() - query module state transition
118  *
119  * Return: true if in transition else false
120  */
121 bool qdf_is_module_state_transitioning(void);
122 #endif /*_QDF_PLATFORM_H*/
123