From: Remo Senekowitsch <remo@buenzli.dev>
To: "Rob Herring" <robh@kernel.org>,
"Saravana Kannan" <saravanak@google.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Dirk Behme" <dirk.behme@de.bosch.com>,
"Remo Senekowitsch" <remo@buenzli.dev>
Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
rust-for-linux@vger.kernel.org
Subject: [PATCH v3 0/7] More Rust bindings for device property reads
Date: Fri, 25 Apr 2025 17:01:23 +0200 [thread overview]
Message-ID: <20250425150130.13917-1-remo@buenzli.dev> (raw)
This adds more Rust bindings for reading device properties, based on
Rob Herring's work. I'm working on a driver[1] that uses these, but the
driver has more dependencies than this.
Best regards,
Remo
changes in v3:
* (started testing myself with Rust 1.78 and doctests enabled)
* Fix doctest and platform driver sample.
* Move property.rs to device/property.rs (a submodule of device).
* Make `Device::fwnode` fallible, avoiding a panic.
* Remove the duplicated property reading methods on Device. Now that
`Device::fwnode` is fallible, these methods would have confusingly
different signatures than the ones on `FwNode`. It will be clearer for
users to explicitly convert from `&Device` to `&FwNode` first,
handling that error case separately, and then reading properties on
`FwNode`.
* Split off separate commits for:
- printing fwnode name and path
- adding PropertyGuard
* Do not access `fwnode_handle.dev` in PropertyGuard for
device-associated logging, fwnode_handle doesn't own a reference to
the device.
* Rename some extension trait methods to be more descriptive:
- Property::read => read_from_fwnode_property
- PropertyInt::read_array => read_array_from_fwnode_property
These methods are not meant to be used directly and won't be
accessible unless their traits are in scope. (And there is no reason
for API users to pull them into scope.) Nevertheless, this reduces the
risk of confusion caused by non-descriptive methods like "read" being
attached to primitive types.
* Implement fwnode printing logic in Rust directly instead of calling
scnprintf.
* Improve some safety comments.
Link: https://rust-for-linux.zulipchat.com/#narrow/channel/288089-General/topic/DS90UB954.20driver.20done.2C.20ready.20to.20upstream.3F/with/507874342 [1]
Remo Senekowitsch (7):
rust: property: Move property_present to separate file
rust: property: Enable printing fwnode name and path
rust: property: Introduce PropertyGuard
rust: property: Add bindings for reading device properties
rust: property: Add child accessor and iterator
rust: property: Add property_get_reference_args
samples: rust: platform: Add property read examples
MAINTAINERS | 3 +-
drivers/of/unittest-data/tests-platform.dtsi | 3 +
rust/helpers/helpers.c | 1 +
rust/helpers/property.c | 8 +
rust/kernel/{device.rs => device/mod.rs} | 9 +-
rust/kernel/device/property.rs | 578 +++++++++++++++++++
samples/rust/rust_driver_platform.rs | 72 ++-
7 files changed, 663 insertions(+), 11 deletions(-)
create mode 100644 rust/helpers/property.c
rename rust/kernel/{device.rs => device/mod.rs} (97%)
create mode 100644 rust/kernel/device/property.rs
--
2.49.0
next reply other threads:[~2025-04-25 15:01 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-25 15:01 Remo Senekowitsch [this message]
2025-04-25 15:01 ` [PATCH v3 1/7] rust: property: Move property_present to separate file Remo Senekowitsch
2025-04-25 15:25 ` Danilo Krummrich
2025-04-30 6:14 ` Dirk Behme
2025-04-25 15:01 ` [PATCH v3 2/7] rust: property: Enable printing fwnode name and path Remo Senekowitsch
2025-04-25 15:48 ` Danilo Krummrich
2025-04-30 7:44 ` Dirk Behme
2025-04-25 15:01 ` [PATCH v3 3/7] rust: property: Introduce PropertyGuard Remo Senekowitsch
2025-04-25 15:35 ` Danilo Krummrich
2025-04-26 6:19 ` Dirk Behme
2025-04-26 10:15 ` Danilo Krummrich
2025-04-26 11:08 ` Remo Senekowitsch
2025-04-26 14:19 ` Danilo Krummrich
2025-04-26 14:35 ` Dirk Behme
2025-04-26 15:02 ` Danilo Krummrich
2025-04-26 21:50 ` Remo Senekowitsch
2025-04-27 22:12 ` John Hubbard
2025-04-28 20:18 ` Rob Herring
2025-04-28 20:25 ` John Hubbard
2025-04-28 21:10 ` Rob Herring
2025-04-27 6:11 ` Dirk Behme
2025-04-27 12:23 ` Danilo Krummrich
2025-04-28 5:03 ` Dirk Behme
2025-04-28 16:09 ` Danilo Krummrich
2025-04-28 20:48 ` Rob Herring
2025-04-28 21:21 ` Danilo Krummrich
2025-04-28 21:50 ` Remo Senekowitsch
2025-04-29 8:50 ` Danilo Krummrich
2025-04-25 15:01 ` [PATCH v3 4/7] rust: property: Add bindings for reading device properties Remo Senekowitsch
2025-04-25 15:01 ` [PATCH v3 5/7] rust: property: Add child accessor and iterator Remo Senekowitsch
2025-04-30 6:26 ` Dirk Behme
2025-04-25 15:01 ` [PATCH v3 6/7] rust: property: Add property_get_reference_args Remo Senekowitsch
2025-04-25 15:01 ` [PATCH v3 7/7] samples: rust: platform: Add property read examples Remo Senekowitsch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250425150130.13917-1-remo@buenzli.dev \
--to=remo@buenzli.dev \
--cc=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dirk.behme@de.bosch.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ojeda@kernel.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=saravanak@google.com \
--cc=tmgross@umich.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®