From: Danilo Krummrich <dakr@kernel.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
"Miguel Ojeda" <miguel.ojeda.sandonis@gmail.com>,
"Danilo Krummrich" <dakr@redhat.com>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Alice Ryhl" <aliceryhl@google.com>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Benno Lossin" <benno.lossin@proton.me>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Miguel Ojeda" <ojeda@kernel.org>, "Nishanth Menon" <nm@ti.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"Viresh Kumar" <vireshk@kernel.org>,
linux-pm@vger.kernel.org,
"Vincent Guittot" <vincent.guittot@linaro.org>,
rust-for-linux@vger.kernel.org,
"Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
"Erik Schilling" <erik.schilling@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Joakim Bech" <joakim.bech@linaro.org>,
"Rob Herring" <robh@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH V6 00/15] Rust bindings for cpufreq and OPP core + sample driver
Date: Tue, 7 Jan 2025 12:47:51 +0100 [thread overview]
Message-ID: <Z30UZwgN2nGtiTsK@pollux> (raw)
In-Reply-To: <cover.1736248242.git.viresh.kumar@linaro.org>
Hi Viresh,
On Tue, Jan 07, 2025 at 04:51:33PM +0530, Viresh Kumar wrote:
> Miguel / Danilo,
>
> I would like to get some of this (if not all) merged now into the rust/dev
You mean rust-dev or staging/dev?
> branch, since this stuff has been around for some time and many other
> dependencies are already merged new (like OF, platform, device/driver). Please
> suggest how can we move forward to get that done.
Now that the device / driver, PCI and platform code has been merged, rust-device
and rust-pci are obsolete. The only thing that's left that I keep merging into
staging/dev is the DRM abstractions from the drm-misc tree. So, maybe we may
just want to drop staging/dev?
- Danilo
>
> -------------------------8<-------------------------
>
> This patch series introduces initial Rust bindings for two subsystems: cpufreq
> and Operating Performance Points (OPP). The bindings cover most of the
> interfaces exposed by these subsystems.
>
> Included in this series is a sample `cpufreq` driver, `rcpufreq-dt`, which is a
> duplicate of the existing `cpufreq-dt` driver. The `cpufreq-dt` driver is a
> generic, platform-agnostic, device-tree-based driver used on many ARM platforms.
>
> Currently, the implementation has been tested using QEMU, verifying that
> frequency transitions, various configurations, and driver binding/unbinding
> functions as expected. However, performance measurements have not been
> conducted.
>
> For those interested in trying these patches, along with a few dependencies,
> they can be found at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git rust/cpufreq-dt
>
> The series includes all the patches to make it work:
> - few new APIs to cpufreq/OPP frameworks.
> - Avoiding using BIT() macro in cpufreq core (we need to make Rust work with
> it).
> - Renaming of the cpufreq-dt platform device (this too needs to be fixed in
> Rust).
> - Basic Rust bindings for clk and cpumask layers.
>
> The work is based on `staging/dev` from the Rust tree, which is derived
> from v6.13-rc3.
>
> V5->V6:
> - Rebase over latest rust/dev branch, which changed few interfaces that the
> patches were using.
> - Included all other patches, which weren't included until now to focus only on
> core APIs.
> - Other minor cleanups, additions.
>
> V4->V5:
> - Rename Registration::register() as new().
> - Provide a new API: Registration::new_foreign_owned() and use it for
> rcpufreq_dt driver.
> - Update MAINTAINERS file.
>
> V3->V4:
> - Fix bugs with freeing of OPP structure. Dropped the Drop routine and fixed
> reference counting.
> - Registration object of the cpufreq core is modified a bit to remove the
> registered field, and few other cleanups.
> - Use Devres for instead of platform data.
> - Improve SAFETY comments.
>
> V2->V3:
> - Rebased on latest rust-device changes, which removed `Data` and so few changes
> were required to make it work.
> - use srctree links (Alice Ryhl).
> - Various changes the OPP creation APIs, new APIs: from_raw_opp() and
> from_raw_opp_owned() (Alice Ryhl).
> - Inline as_raw() helpers (Alice Ryhl).
> - Add new interface (`OPP::Token`) for dynamically created OPPs.
> - Add Reviewed-by tag from Manos.
> - Modified/simplified cpufreq registration structure / method a bit.
>
> V1->V2:
> - Create and use separate bindings for OF, clk, cpumask, etc (not included in
> this patchset but pushed to the above branch). This helped removing direct
> calls from the driver.
> - Fix wrong usage of Pinning + Vec.
> - Use Token for OPP Config.
> - Use Opaque, transparent and Aref for few structures.
> - Broken down into smaller patches to make it easy for reviewers.
> - Based over staging/rust-device.
>
> Thanks.
>
> Viresh Kumar (15):
> PM / OPP: Expose refcounting helpers for the Rust implementation
> cpufreq: Add cpufreq_table_len()
> cpufreq: Rust implementation doesn't parse BIT() macro
> rust: device: Add few helpers
> rust: Add bindings for cpumask
> rust: Add bare minimal bindings for clk framework
> rust: Add initial bindings for OPP framework
> rust: Extend OPP bindings for the OPP table
> rust: Extend OPP bindings for the configuration options
> rust: Add initial bindings for cpufreq framework
> rust: Extend cpufreq bindings for policy and driver ops
> rust: Extend cpufreq bindings for driver registration
> rust: Extend OPP bindings with CPU frequency table
> cpufreq: Add Rust based cpufreq-dt driver
> DO-NOT_MERGE: cpufreq: Rename cpufreq-dt platdev
>
> MAINTAINERS | 2 +
> drivers/cpufreq/Kconfig | 12 +
> drivers/cpufreq/Makefile | 1 +
> drivers/cpufreq/cpufreq-dt-platdev.c | 2 +-
> drivers/cpufreq/rcpufreq_dt.rs | 232 ++++++
> drivers/opp/core.c | 17 +-
> drivers/opp/opp.h | 1 -
> include/linux/cpufreq.h | 27 +-
> include/linux/pm_opp.h | 6 +
> rust/bindings/bindings_helper.h | 5 +
> rust/helpers/cpufreq.c | 16 +
> rust/helpers/cpumask.c | 35 +
> rust/helpers/helpers.c | 2 +
> rust/kernel/clk.rs | 48 ++
> rust/kernel/cpufreq.rs | 1079 ++++++++++++++++++++++++++
> rust/kernel/cpumask.rs | 85 ++
> rust/kernel/device.rs | 21 +
> rust/kernel/lib.rs | 6 +
> rust/kernel/opp.rs | 886 +++++++++++++++++++++
> 19 files changed, 2468 insertions(+), 15 deletions(-)
> create mode 100644 drivers/cpufreq/rcpufreq_dt.rs
> create mode 100644 rust/helpers/cpufreq.c
> create mode 100644 rust/helpers/cpumask.c
> create mode 100644 rust/kernel/clk.rs
> create mode 100644 rust/kernel/cpufreq.rs
> create mode 100644 rust/kernel/cpumask.rs
> create mode 100644 rust/kernel/opp.rs
>
> --
> 2.31.1.272.g89b43f80a514
>
next prev parent reply other threads:[~2025-01-07 11:47 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-07 11:21 [PATCH V6 00/15] Rust bindings for cpufreq and OPP core + sample driver Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 01/15] PM / OPP: Expose refcounting helpers for the Rust implementation Viresh Kumar
2025-01-07 11:58 ` Greg KH
2025-01-08 9:11 ` Viresh Kumar
2025-01-08 11:53 ` Greg KH
2025-01-07 11:21 ` [PATCH V6 02/15] cpufreq: Add cpufreq_table_len() Viresh Kumar
2025-01-07 11:59 ` Greg KH
2025-01-08 11:12 ` Viresh Kumar
2025-01-08 11:50 ` Greg KH
2025-01-09 4:41 ` Viresh Kumar
2025-01-09 7:35 ` Greg KH
2025-01-13 7:30 ` Viresh Kumar
2025-01-13 7:53 ` Greg KH
2025-01-07 11:21 ` [PATCH V6 03/15] cpufreq: Rust implementation doesn't parse BIT() macro Viresh Kumar
2025-01-07 12:00 ` Greg KH
2025-01-07 13:29 ` Daniel Almeida
2025-01-08 6:53 ` Viresh Kumar
2025-01-08 9:01 ` Alice Ryhl
2025-01-08 9:27 ` Viresh Kumar
2025-01-08 5:37 ` Viresh Kumar
2025-01-08 14:47 ` Miguel Ojeda
2025-01-07 11:21 ` [PATCH V6 04/15] rust: device: Add few helpers Viresh Kumar
2025-01-07 11:56 ` Greg Kroah-Hartman
2025-01-08 11:02 ` Viresh Kumar
2025-01-08 11:52 ` Greg Kroah-Hartman
2025-01-08 11:55 ` Alice Ryhl
2025-01-08 12:14 ` Greg Kroah-Hartman
2025-01-08 13:42 ` Danilo Krummrich
2025-01-09 6:36 ` Viresh Kumar
2025-01-09 5:14 ` Viresh Kumar
2025-01-07 11:56 ` Danilo Krummrich
2025-01-07 11:21 ` [PATCH V6 05/15] rust: Add bindings for cpumask Viresh Kumar
2025-01-07 12:01 ` Greg KH
2025-01-07 11:21 ` [PATCH V6 06/15] rust: Add bare minimal bindings for clk framework Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 07/15] rust: Add initial bindings for OPP framework Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 08/15] rust: Extend OPP bindings for the OPP table Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 09/15] rust: Extend OPP bindings for the configuration options Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 10/15] rust: Add initial bindings for cpufreq framework Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 11/15] rust: Extend cpufreq bindings for policy and driver ops Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 12/15] rust: Extend cpufreq bindings for driver registration Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 13/15] rust: Extend OPP bindings with CPU frequency table Viresh Kumar
2025-01-07 11:21 ` [PATCH V6 14/15] cpufreq: Add Rust based cpufreq-dt driver Viresh Kumar
2025-01-07 12:04 ` Greg KH
2025-01-07 11:21 ` [PATCH V6 15/15] DO-NOT_MERGE: cpufreq: Rename cpufreq-dt platdev Viresh Kumar
2025-01-07 11:47 ` Danilo Krummrich [this message]
2025-01-08 5:20 ` [PATCH V6 00/15] Rust bindings for cpufreq and OPP core + sample driver Viresh Kumar
2025-01-08 15:03 ` Miguel Ojeda
2025-01-09 3:50 ` Viresh Kumar
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=Z30UZwgN2nGtiTsK@pollux \
--to=dakr@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=alex.bennee@linaro.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@redhat.com \
--cc=erik.schilling@linaro.org \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=joakim.bech@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=manos.pitsidianakis@linaro.org \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=nm@ti.com \
--cc=ojeda@kernel.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=sboyd@kernel.org \
--cc=tmgross@umich.edu \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
--cc=vireshk@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.