mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
rust: device: Move property_present() to FwNode
The new FwNode abstraction will be used for accessing all device properties. It would be possible to duplicate the methods on the device itself, but since some of the methods on Device would have different type sigatures as the ones on FwNode, this would only lead to inconsistency and confusion. For this reason, property_present is removed from Device and existing users are updated. Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Remo Senekowitsch <remo@buenzli.dev> Link: https://lore.kernel.org/r/20250611102908.212514-4-remo@buenzli.dev Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
parent
658f23b592
commit
d3393e8450
|
|
@ -20,7 +20,8 @@
|
|||
/// Finds exact supply name from the OF node.
|
||||
fn find_supply_name_exact(dev: &Device, name: &str) -> Option<CString> {
|
||||
let prop_name = CString::try_from_fmt(fmt!("{}-supply", name)).ok()?;
|
||||
dev.property_present(&prop_name)
|
||||
dev.fwnode()?
|
||||
.property_present(&prop_name)
|
||||
.then(|| CString::try_from_fmt(fmt!("{name}")).ok())
|
||||
.flatten()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
use crate::{
|
||||
bindings,
|
||||
str::CStr,
|
||||
types::{ARef, Opaque},
|
||||
};
|
||||
use core::{fmt, marker::PhantomData, ptr};
|
||||
|
|
@ -219,12 +218,6 @@ pub fn fwnode(&self) -> Option<&property::FwNode> {
|
|||
// defined as a `#[repr(transparent)]` wrapper around `fwnode_handle`.
|
||||
Some(unsafe { &*fwnode_handle.cast() })
|
||||
}
|
||||
|
||||
/// Checks if property is present or not.
|
||||
pub fn property_present(&self, name: &CStr) -> bool {
|
||||
// SAFETY: By the invariant of `CStr`, `name` is null-terminated.
|
||||
unsafe { bindings::device_property_present(self.as_raw().cast_const(), name.as_char_ptr()) }
|
||||
}
|
||||
}
|
||||
|
||||
// SAFETY: `Device` is a transparent wrapper of a type that doesn't depend on `Device`'s generic
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
use crate::{
|
||||
bindings,
|
||||
str::CStr,
|
||||
types::{ARef, Opaque},
|
||||
};
|
||||
|
||||
|
|
@ -56,6 +57,12 @@ unsafe fn from_raw(raw: *mut bindings::fwnode_handle) -> ARef<Self> {
|
|||
pub(crate) fn as_raw(&self) -> *mut bindings::fwnode_handle {
|
||||
self.0.get()
|
||||
}
|
||||
|
||||
/// Checks if property is present or not.
|
||||
pub fn property_present(&self, name: &CStr) -> bool {
|
||||
// SAFETY: By the invariant of `CStr`, `name` is null-terminated.
|
||||
unsafe { bindings::fwnode_property_present(self.as_raw().cast_const(), name.as_char_ptr()) }
|
||||
}
|
||||
}
|
||||
|
||||
// SAFETY: Instances of `FwNode` are always reference-counted.
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user