Re: [PATCH v5 3/4] rust: clk: add devres-managed clks

"Alexandre Courbot" <[email protected]> Sun, 02 Aug 2026 14:24:17 +0900
Newsgroups org.kernel.vger.linux-pwm,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-clk,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm,org.kernel.vger.rust-for-linux
Message-ID <[email protected]>
On Mon Jul 6, 2026 at 11:37 PM JST, Daniel Almeida wrote:
> The clk API allows fine-grained control, but some drivers might be
> more interested in a "set and forget" API.
>
> Expand the current API to support this. The clock will automatically be
> disabled, unprepared and freed when the device is unbound from the bus
> without further intervention by the driver.
>
> Signed-off-by: Daniel Almeida <[email protected]>

Reviewed-by: Alexandre Courbot <[email protected]>

One nit below.

> ---
>  rust/kernel/clk.rs | 46 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 46 insertions(+)
>
> diff --git a/rust/kernel/clk.rs b/rust/kernel/clk.rs
> index dd5fd656271e..b9a44f83843a 100644
> --- a/rust/kernel/clk.rs
> +++ b/rust/kernel/clk.rs
> @@ -96,6 +96,52 @@ impl Sealed for super::Prepared {}
>          impl Sealed for super::Enabled {}
>      }
> =20
> +    /// Obtains and enables a [`devres`]-managed [`Clk`] for a bound dev=
ice.
> +    ///
> +    /// [`devres`]: crate::devres::Devres
> +    #[inline]
> +    pub fn devm_enable(dev: &Device<Bound>, name: Option<&CStr>) -> Resu=
lt {
> +        let name =3D name.map_or(ptr::null(), |n| n.as_char_ptr());
> +
> +        // SAFETY: It is safe to call [`devm_clk_get_enabled`] with a va=
lid
> +        // device pointer.
> +        from_err_ptr(unsafe { bindings::devm_clk_get_enabled(dev.as_raw(=
), name) })?;
> +        Ok(())
> +    }
> +
> +    /// Obtains and enables a [`devres`]-managed [`Clk`] for a bound dev=
ice.
> +    ///
> +    /// This does not print any error messages if the clock is not found=
.

This sounds like a clock not being found returns an error, but no
message is printed.