From: Danilo Krummrich <dakr@kernel.org>
To: Igor Korotin <igor.korotin.linux@gmail.com>
Cc: "Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Rob Herring" <robh@kernel.org>,
"Saravana Kannan" <saravanak@google.com>,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, devicetree@vger.kernel.org,
"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>, "Len Brown" <lenb@kernel.org>,
"Viresh Kumar" <viresh.kumar@linaro.org>,
"Wedson Almeida Filho" <wedsonaf@gmail.com>,
"Alex Hung" <alex.hung@amd.com>,
"Tamir Duberstein" <tamird@gmail.com>,
"FUJITA Tomonori" <fujita.tomonori@gmail.com>,
"Xiangfei Ding" <dingxiangfei2009@gmail.com>
Subject: Re: [PATCH v2 5/5] samples: rust: add ACPI match table example to platform driver
Date: Fri, 6 Jun 2025 15:58:24 +0200 [thread overview]
Message-ID: <aEL0AGBZqDp1lMFe@pollux> (raw)
In-Reply-To: <20250605165231.3663810-1-igor.korotin.linux@gmail.com>
On Thu, Jun 05, 2025 at 05:52:31PM +0100, Igor Korotin wrote:
> Extend the Rust sample platform driver to probe using device/driver name
> matching, OF ID table matching, or ACPI ID table matching.
>
> Signed-off-by: Igor Korotin <igor.korotin.linux@gmail.com>
> ---
> samples/rust/rust_driver_platform.rs | 40 +++++++++++++++++++++++++++-
> 1 file changed, 39 insertions(+), 1 deletion(-)
>
> diff --git a/samples/rust/rust_driver_platform.rs b/samples/rust/rust_driver_platform.rs
> index e3992e7a71e9..ee0780c1d6ae 100644
> --- a/samples/rust/rust_driver_platform.rs
> +++ b/samples/rust/rust_driver_platform.rs
> @@ -17,10 +17,48 @@ struct SampleDriver {
> [(of::DeviceId::new(c_str!("test,rust-device")), Info(42))]
> );
>
> +kernel::acpi_device_table!(
> + ACPI_TABLE,
> + MODULE_ACPI_TABLE,
> + <SampleDriver as platform::Driver>::IdInfo,
> + [(acpi::DeviceId::new(c_str!("TEST4321")), Info(0))]
Can you please explain add a comment explaining how to make this probe? In the
cover letter you mention:
"Tested using QEMU with a custom SSDT that creates an ACPI device matching the
sample Rust platform driver."
> +);
> +
> +/// OF/ACPI match tables for Platform Driver implementation
> +///
> +/// The platform::Driver requires declaration of both OF_ID_TABLE and
> +/// ACPI_ID_TABLE, but if driver is not going to use either of them
> +/// it can implement one of them or both as None.
> +///
> +/// # Example:
> +///
> +///```
> +/// impl platform::Driver for SampleDriver {
> +/// type IdInfo = Info;
> +/// const OF_ID_TABLE: Option<of::IdTable<Self::IdInfo>> = None;
> +/// const ACPI_ID_TABLE: Option<acpi::IdTable<Self::IdInfo>> = None;
> +///
> +/// fn probe(
> +/// pdev: &platform::Device<Core>,
> +/// info: Option<&Self::IdInfo>,
> +/// ) -> Result<Pin<KBox<Self>>> {
> +/// dev_dbg!(pdev.as_ref(), "Probe Rust Platform driver sample.\n");
> +///
> +/// if let Some(info) = info {
> +/// dev_info!(pdev.as_ref(), "Probed with info: '{}'.\n", info.0);
> +/// }
> +///
> +/// let drvdata = KBox::new(Self { pdev: pdev.into() }, GFP_KERNEL)?;
> +///
> +/// Ok(drvdata.into())
> +/// }
> +/// }
> +///```
I assume you want to make clear that both the ACPI and OF table are optional;
not sure of that's required given their type is Option<...>. But I'm fine having
this additional comment and example.
Please make sure that it compiles though and remove everything unnecessary from
probe() please.
> +
> impl platform::Driver for SampleDriver {
> type IdInfo = Info;
> const OF_ID_TABLE: Option<of::IdTable<Self::IdInfo>> = Some(&OF_TABLE);
> - const ACPI_ID_TABLE: Option<acpi::IdTable<Self::IdInfo>> = None;
> + const ACPI_ID_TABLE: Option<acpi::IdTable<Self::IdInfo>> = Some(&ACPI_TABLE);
>
> fn probe(
> pdev: &platform::Device<Core>,
> --
> 2.43.0
>
next prev parent reply other threads:[~2025-06-06 13:58 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-05 16:19 [PATCH v2 0/5] rust: Add ACPI match table support for Rust drivers Igor Korotin
2025-06-05 16:23 ` [PATCH v2 1/5] rust: acpi: add `acpi::DeviceId` abstraction Igor Korotin
2025-06-06 1:17 ` kernel test robot
2025-06-05 16:24 ` [PATCH v2 2/5] rust: helpers: Add `is_of_node` helper function Igor Korotin
2025-06-05 16:27 ` [PATCH v2 3/5] rust: driver: Add ACPI id table support to Adapter trait Igor Korotin
2025-06-06 13:50 ` Danilo Krummrich
2025-06-06 14:26 ` Igor Korotin
2025-06-06 14:32 ` Danilo Krummrich
2025-06-06 14:58 ` Igor Korotin
2025-06-06 15:14 ` Danilo Krummrich
2025-06-06 15:29 ` Greg Kroah-Hartman
2025-06-06 15:38 ` Danilo Krummrich
2025-06-06 15:59 ` Igor Korotin
2025-06-05 16:51 ` Igor Korotin
2025-06-06 1:50 ` kernel test robot
2025-06-05 16:51 ` [PATCH v2 4/5] rust: platform: Add ACPI match table support to `Driver` trait Igor Korotin
2025-06-05 16:52 ` [PATCH v2 5/5] samples: rust: add ACPI match table example to platform driver Igor Korotin
2025-06-06 13:58 ` Danilo Krummrich [this message]
2025-06-06 13:26 ` [PATCH v2 0/5] rust: Add ACPI match table support for Rust drivers Danilo Krummrich
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=aEL0AGBZqDp1lMFe@pollux \
--to=dakr@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=alex.gaynor@gmail.com \
--cc=alex.hung@amd.com \
--cc=aliceryhl@google.com \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=dingxiangfei2009@gmail.com \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=igor.korotin.linux@gmail.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.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=tamird@gmail.com \
--cc=tmgross@umich.edu \
--cc=viresh.kumar@linaro.org \
--cc=wedsonaf@gmail.com \
/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.