Messages in this thread | | | From | Viresh Kumar <> | Subject | [RFC PATCH 0/3] Rust bindings for cpufreq and OPP core + sample driver | Date | Fri, 5 Apr 2024 16:39:37 +0530 |
| |
Hello,
This RFC adds initial rust bindings for two subsystems, cpufreq and operating performance points (OPP). The bindings are provided for most of the interface these subsystems expose.
This series also provides a sample cpufreq driver rcpufreq-dt, which is a duplicate of the merged cpufreq-dt driver (A generic platform agnostic device tree based cpufreq driver) used on most of the ARM platforms.
This is tested with the help of QEMU for now and frequency transitions and configurations work as expected. No performance measurement is done as of now with this.
These patches (along with a lot of other dependencies) are pushed here for anyone to give them a try:
git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux.git rust/cpufreq-dt
I understand that there is a long road ahead before these patches can get merged as a lot of other stuff needs to get in first, i.e. Rust bindings for: - generic device / driver - platform device / driver - clk, regulator, OF, cpumask, etc
Because of the missing bindings for above APIs, lot of calls are made directly into the bindgen generated bindings for now, to make this work. Hopefully we can have a lot less unsafe code once we get all those things merged.
Based over v6.9-rc1.
Thanks.
Viresh Kumar (3): rust: Add bindings for OPP framework rust: Add bindings for cpufreq framework cpufreq: Add Rust based cpufreq-dt driver
drivers/cpufreq/Kconfig | 12 + drivers/cpufreq/Makefile | 1 + drivers/cpufreq/rcpufreq_dt.rs | 264 ++++++++ rust/bindings/bindings_helper.h | 2 + rust/helpers.c | 15 + rust/kernel/cpufreq.rs | 1090 +++++++++++++++++++++++++++++++ rust/kernel/lib.rs | 4 + rust/kernel/opp.rs | 895 +++++++++++++++++++++++++ 8 files changed, 2283 insertions(+) create mode 100644 drivers/cpufreq/rcpufreq_dt.rs create mode 100644 rust/kernel/cpufreq.rs create mode 100644 rust/kernel/opp.rs
-- 2.31.1.272.g89b43f80a514
| |