xref: /linux/drivers/gpu/drm/i915/i915_timer_util.h (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*df7d085bSJani Nikula /* SPDX-License-Identifier: MIT */
2*df7d085bSJani Nikula /* Copyright © 2025 Intel Corporation */
3*df7d085bSJani Nikula 
4*df7d085bSJani Nikula #ifndef __I915_TIMER_UTIL_H__
5*df7d085bSJani Nikula #define __I915_TIMER_UTIL_H__
6*df7d085bSJani Nikula 
7*df7d085bSJani Nikula #include <linux/timer.h>
8*df7d085bSJani Nikula #include <asm/rwonce.h>
9*df7d085bSJani Nikula 
10*df7d085bSJani Nikula void cancel_timer(struct timer_list *t);
11*df7d085bSJani Nikula void set_timer_ms(struct timer_list *t, unsigned long timeout);
12*df7d085bSJani Nikula 
13*df7d085bSJani Nikula static inline bool timer_active(const struct timer_list *t)
14*df7d085bSJani Nikula {
15*df7d085bSJani Nikula 	return READ_ONCE(t->expires);
16*df7d085bSJani Nikula }
17*df7d085bSJani Nikula 
18*df7d085bSJani Nikula static inline bool timer_expired(const struct timer_list *t)
19*df7d085bSJani Nikula {
20*df7d085bSJani Nikula 	return timer_active(t) && !timer_pending(t);
21*df7d085bSJani Nikula }
22*df7d085bSJani Nikula 
23*df7d085bSJani Nikula #endif /* __I915_TIMER_UTIL_H__ */
24