summaryrefslogtreecommitdiff
path: root/rust/kernel/time/hrtimer.rs
diff options
context:
space:
mode:
authorAndreas Hindborg <a.hindborg@kernel.org>2025-03-09 16:19:03 +0100
committerAndreas Hindborg <a.hindborg@kernel.org>2025-03-22 12:08:54 +0100
commitaa33de03a3d58a8e502ead3ca0d445a4fba22c83 (patch)
tree314dc82f37b6c239454b2ce2d0286d160ee2273b /rust/kernel/time/hrtimer.rs
parentbfa3a410bf03ca41a7a58dea1e9c2acac9295bf7 (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.rs5
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(),
);
}