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