Re: [PATCH V2 2/2] rust: Add basic bindings for clk APIs

From: Viresh Kumar
Date: Mon Feb 24 2025 - 05:04:31 EST


On 21-02-25, 15:59, Rob Herring wrote:
> It would be nice to handle the optional case from the start. Otherwise,
> driver writers handle optional or not optional themselves. The not
> optional case is typically some form of error message duplicated in
> every driver.
>
> Every foo_get() needs foo_get_optional(), so let's figure out the rust
> way to handle this once for everyone.

Are we talking about adding another field here (like below code) or
something else ?

impl Clk {
pub fn get(dev: &Device, name: Option<&CStr>, optional: bool) -> Result<Self> {
...

let clk = if optional {
bindings::clk_get(dev.as_raw(), con_id)
else {
bindings::clk_get_optional(dev.as_raw(), con_id)
};

Ok(Self(from_err_ptr(clk)?))
}
}

--
viresh