diff options
author | Andreas Hindborg <a.hindborg@kernel.org> | 2025-03-09 16:19:03 +0100 |
---|---|---|
committer | Andreas Hindborg <a.hindborg@kernel.org> | 2025-03-22 12:08:54 +0100 |
commit | aa33de03a3d58a8e502ead3ca0d445a4fba22c83 (patch) | |
tree | 314dc82f37b6c239454b2ce2d0286d160ee2273b /rust/kernel/time/hrtimer.rs | |
parent | bfa3a410bf03ca41a7a58dea1e9c2acac9295bf7 (diff) |
rust: hrtimer: add clocksource selection through `ClockId`
Allow selecting a clock source for timers by passing a `ClockId`
variant to `HrTimer::new`.
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20250309-hrtimer-v3-v6-12-rc2-v12-12-73586e2bd5f1@kernel.org
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
Diffstat (limited to 'rust/kernel/time/hrtimer.rs')
-rw-r--r-- | rust/kernel/time/hrtimer.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/rust/kernel/time/hrtimer.rs b/rust/kernel/time/hrtimer.rs index ed5ccdb71064..4fc49f193125 100644 --- a/rust/kernel/time/hrtimer.rs +++ b/rust/kernel/time/hrtimer.rs @@ -67,6 +67,7 @@ //! A `restart` operation on a timer in the **stopped** state is equivalent to a //! `start` operation. +use super::ClockId; use crate::{init::PinInit, prelude::*, time::Ktime, types::Opaque}; use core::marker::PhantomData; @@ -94,7 +95,7 @@ unsafe impl<T> Sync for HrTimer<T> {} impl<T> HrTimer<T> { /// Return an initializer for a new timer instance. - pub fn new(mode: HrTimerMode) -> impl PinInit<Self> + pub fn new(mode: HrTimerMode, clock: ClockId) -> impl PinInit<Self> where T: HrTimerCallback, { @@ -108,7 +109,7 @@ impl<T> HrTimer<T> { bindings::hrtimer_setup( place, Some(T::Pointer::run), - bindings::CLOCK_MONOTONIC as i32, + clock.into_c(), mode.into_c(), ); } |