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