xref: /wlan-dirver/qca-wifi-host-cmn/qdf/linux/src/qdf_hrtimer.c (revision d7ab161deaad34c2bdbf83921638879c800c28df)
1aca02352SDebasis Das /*
2aca02352SDebasis Das  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
382711507SAnanya Barat  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
4aca02352SDebasis Das  *
5aca02352SDebasis Das  * Permission to use, copy, modify, and/or distribute this software for
6aca02352SDebasis Das  * any purpose with or without fee is hereby granted, provided that the
7aca02352SDebasis Das  * above copyright notice and this permission notice appear in all
8aca02352SDebasis Das  * copies.
9aca02352SDebasis Das  *
10aca02352SDebasis Das  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11aca02352SDebasis Das  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12aca02352SDebasis Das  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13aca02352SDebasis Das  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14aca02352SDebasis Das  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15aca02352SDebasis Das  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16aca02352SDebasis Das  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17aca02352SDebasis Das  * PERFORMANCE OF THIS SOFTWARE.
18aca02352SDebasis Das  */
19aca02352SDebasis Das 
20aca02352SDebasis Das /**
21aca02352SDebasis Das  * DOC: qdf_hrtimer
22aca02352SDebasis Das  * QCA driver framework (QDF) high resolution timers timer APIs
23aca02352SDebasis Das  */
24aca02352SDebasis Das 
25aca02352SDebasis Das #include "i_qdf_hrtimer.h"
26aca02352SDebasis Das #include "qdf_hrtimer.h"
27aca02352SDebasis Das #include <qdf_module.h>
28aca02352SDebasis Das 
29aca02352SDebasis Das void qdf_hrtimer_start(qdf_hrtimer_data_t *timer, qdf_ktime_t interval,
30aca02352SDebasis Das 		       enum qdf_hrtimer_mode mode)
31aca02352SDebasis Das {
32aca02352SDebasis Das 	__qdf_hrtimer_start(timer, interval, mode);
33aca02352SDebasis Das }
34aca02352SDebasis Das 
35aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_start);
36aca02352SDebasis Das 
37aca02352SDebasis Das int qdf_hrtimer_cancel(qdf_hrtimer_data_t *timer)
38aca02352SDebasis Das {
39aca02352SDebasis Das 	return __qdf_hrtimer_cancel(timer);
40aca02352SDebasis Das }
41aca02352SDebasis Das 
42aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_cancel);
43aca02352SDebasis Das 
44aca02352SDebasis Das void qdf_hrtimer_init(qdf_hrtimer_data_t *timer,
45aca02352SDebasis Das 		      qdf_hrtimer_func_t callback,
46aca02352SDebasis Das 		      enum qdf_clock_id clock,
47aca02352SDebasis Das 		      enum qdf_hrtimer_mode mode,
48aca02352SDebasis Das 		      enum qdf_context_mode ctx)
49aca02352SDebasis Das {
50aca02352SDebasis Das 	__qdf_hrtimer_init(timer, callback, clock, mode, ctx);
51aca02352SDebasis Das }
52aca02352SDebasis Das 
53aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_init);
54aca02352SDebasis Das 
5582711507SAnanya Barat qdf_ktime_t qdf_time_ms_to_ktime(uint64_t ms)
5682711507SAnanya Barat {
5782711507SAnanya Barat 	return __qdf_time_ms_to_ktime(ms);
5882711507SAnanya Barat }
5982711507SAnanya Barat 
6082711507SAnanya Barat qdf_export_symbol(qdf_time_ms_to_ktime);
6182711507SAnanya Barat 
62aca02352SDebasis Das void qdf_hrtimer_kill(qdf_hrtimer_data_t *timer)
63aca02352SDebasis Das {
64aca02352SDebasis Das 	__qdf_hrtimer_kill(timer);
65aca02352SDebasis Das }
66aca02352SDebasis Das 
67aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_kill);
68aca02352SDebasis Das 
69aca02352SDebasis Das qdf_ktime_t qdf_hrtimer_get_remaining(qdf_hrtimer_data_t *timer)
70aca02352SDebasis Das {
71aca02352SDebasis Das 	return __qdf_hrtimer_get_remaining(timer);
72aca02352SDebasis Das }
73aca02352SDebasis Das 
74aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_get_remaining);
75aca02352SDebasis Das 
76aca02352SDebasis Das bool qdf_hrtimer_is_queued(qdf_hrtimer_data_t *timer)
77aca02352SDebasis Das {
78aca02352SDebasis Das 	return __qdf_hrtimer_is_queued(timer);
79aca02352SDebasis Das }
80aca02352SDebasis Das 
81aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_is_queued);
82aca02352SDebasis Das 
83aca02352SDebasis Das bool qdf_hrtimer_callback_running(qdf_hrtimer_data_t *timer)
84aca02352SDebasis Das {
85aca02352SDebasis Das 	return __qdf_hrtimer_callback_running(timer);
86aca02352SDebasis Das }
87aca02352SDebasis Das 
88aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_callback_running);
89aca02352SDebasis Das 
90aca02352SDebasis Das bool qdf_hrtimer_active(qdf_hrtimer_data_t *timer)
91aca02352SDebasis Das {
92aca02352SDebasis Das 	return __qdf_hrtimer_active(timer);
93aca02352SDebasis Das }
94aca02352SDebasis Das 
95aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_active);
96aca02352SDebasis Das 
97aca02352SDebasis Das qdf_ktime_t qdf_hrtimer_cb_get_time(qdf_hrtimer_data_t *timer)
98aca02352SDebasis Das {
99aca02352SDebasis Das 	return __qdf_hrtimer_cb_get_time(timer);
100aca02352SDebasis Das }
101aca02352SDebasis Das 
102aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_cb_get_time);
103aca02352SDebasis Das 
104aca02352SDebasis Das uint64_t qdf_hrtimer_forward(qdf_hrtimer_data_t *timer,
105aca02352SDebasis Das 			     qdf_ktime_t now,
106aca02352SDebasis Das 			     qdf_ktime_t interval)
107aca02352SDebasis Das {
108aca02352SDebasis Das 	return __qdf_hrtimer_forward(timer, now, interval);
109aca02352SDebasis Das }
110aca02352SDebasis Das 
111aca02352SDebasis Das qdf_export_symbol(qdf_hrtimer_forward);
112*d7ab161dSVishal Miskin 
113*d7ab161dSVishal Miskin void qdf_hrtimer_add_expires(qdf_hrtimer_data_t *timer, qdf_ktime_t interval)
114*d7ab161dSVishal Miskin {
115*d7ab161dSVishal Miskin 	return __qdf_hrtimer_add_expires(timer, interval);
116*d7ab161dSVishal Miskin }
117*d7ab161dSVishal Miskin 
118*d7ab161dSVishal Miskin qdf_export_symbol(qdf_hrtimer_add_expires);
119