From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Markus Probst <markus.probst@posteo.de>
Cc: "Hans de Goede" <hansg@kernel.org>,
"Bryan O'Donoghue" <bryan.odonoghue@linaro.org>,
"Lee Jones" <lee@kernel.org>, "Pavel Machek" <pavel@kernel.org>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun@kernel.org>, "Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <lossin@kernel.org>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Danilo Krummrich" <dakr@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
platform-driver-x86@vger.kernel.org, linux-leds@vger.kernel.org,
devicetree@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
rust-for-linux@vger.kernel.org
Subject: Re: [PATCH v8 2/2] platform: Add initial synology microp driver
Date: Tue, 21 Apr 2026 21:10:56 +0300 (EEST) [thread overview]
Message-ID: <e166861c-e75d-d1c2-61e8-f611e6ee1ef2@linux.intel.com> (raw)
In-Reply-To: <c4964138177c4455f5eb07d0e23db2dfec40bf9c.camel@posteo.de>
[-- Attachment #1: Type: text/plain, Size: 4741 bytes --]
On Tue, 21 Apr 2026, Markus Probst wrote:
> On Tue, 2026-04-21 at 14:59 +0300, Ilpo Järvinen wrote:
> > On Mon, 20 Apr 2026, Markus Probst wrote:
> >
> > > Add a initial synology microp driver, written in Rust.
> > > The driver targets a microcontroller found in Synology NAS devices. It
> > > currently only supports controlling of the power led, status led, alert
> > > led and usb led. Other components such as fan control or handling
> > > on-device buttons will be added once the required rust abstractions are
> > > there.
> > >
> > > This driver can be used both on arm and x86, thus it goes into the root
> > > directory of drivers/platform.
> > >
> > > Tested successfully on a Synology DS923+.
> > >
> > > Signed-off-by: Markus Probst <markus.probst@posteo.de>
> > > ---
> > > MAINTAINERS | 6 +
> > > drivers/platform/Kconfig | 2 +
> > > drivers/platform/Makefile | 1 +
> > > drivers/platform/synology_microp/Kconfig | 13 +
> > > drivers/platform/synology_microp/Makefile | 3 +
> > > drivers/platform/synology_microp/TODO | 7 +
> > > drivers/platform/synology_microp/command.rs | 54 ++++
> > > drivers/platform/synology_microp/led.rs | 281 +++++++++++++++++++++
> > > drivers/platform/synology_microp/model.rs | 49 ++++
> > > .../platform/synology_microp/synology_microp.rs | 110 ++++++++
> > > 10 files changed, 526 insertions(+)
> > >
> > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > index c1c686846cdd..49f08290eed0 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -25555,6 +25555,12 @@ F: drivers/dma-buf/sync_*
> > > F: include/linux/sync_file.h
> > > F: include/uapi/linux/sync_file.h
> > >
> > > +SYNOLOGY MICROP DRIVER
> > > +M: Markus Probst <markus.probst@posteo.de>
> >
> > You should probably add:
> >
> > L: platform-driver-x86@vger.kernel.org
> >
> > Through which tree the patches to this driver are generally expected to be
> > picked up?
>
> I suppose platform-drivers-x86.
Okay (with the platform drivers maintainer hat on). Just don't expect me
to have deep Rust knowledge.
> The driver itself can be used both on
> x86 and arm64. Although I also have seen Synology devices with PowerPC
> (no device with PowerPC is supported in the driver yet).
In practice platform drivers scope has already expanded beyond x86 so the
platform-drivers-x86 list naming is just a historic artifact.
> > > +S: Maintained
> > > +F: Documentation/devicetree/bindings/embedded-controller/synology,ds1825p-microp.yaml
> > > +F: drivers/platform/synology_microp/
> > > +
> > > SYNOPSYS ARC ARCHITECTURE
> > > M: Vineet Gupta <vgupta@kernel.org>
> > > L: linux-snps-arc@lists.infradead.org
> > > diff --git a/drivers/platform/synology_microp/TODO b/drivers/platform/synology_microp/TODO
> > > new file mode 100644
> > > index 000000000000..1961a33115db
> > > --- /dev/null
> > > +++ b/drivers/platform/synology_microp/TODO
> > > @@ -0,0 +1,7 @@
> > > +TODO:
> > > +- add missing components:
> > > + - handle on-device buttons (Power, Factory reset, "USB Copy")
> > > + - handle fan failure
> > > + - beeper
> > > + - fan speed control
> > > + - correctly perform device power-off and restart on Synology devices
> >
> > Is this TODO list really needed within the kernel distribution?
>
> Not really. Although it indicates the current state of the driver.
>
> > If you planning on add these features (relatively) soon yourself (perhaps
> > depending on when the rust infra required for these features becomes
> > available), the list would not be that useful for other developers at all.
>
> Yes. Also I haven't seen anyone work on input, hwmon, reboot/sysoff
> rust abstractions yet, so I will likely need to add those as well.
Lets not include the TODO file then.
> > > +/// Blink delay measured using video recording on DS923+ for Power and Status Led.
> > > +///
> > > +/// We assume it is the same for all other leds and models.
> > > +const BLINK_DELAY: usize = 167;
> >
> > On C side time related consts are required to include the unit in their
> > name. Perhaps Rust code should also follow this convention?
>
> How about `const BLINK_DELAY: Msecs` ? The unit would be implied
> through the already existing type alias `kernel::time::Msecs` for u32.
I don't have opinion on this with my limited Rust knowledge (it just
stuck to my eye how non-specific that original one looked). If Rust
can do things even better as Miguel seems to imply, please look at those
directions.
--
i.
next prev parent reply other threads:[~2026-04-21 18:11 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-20 14:24 [PATCH v8 0/2] Introduce Synology Microp driver Markus Probst
2026-04-20 14:24 ` [PATCH v8 1/2] dt-bindings: embedded-controller: Add synology microp devices Markus Probst
2026-04-21 7:07 ` Krzysztof Kozlowski
2026-04-21 14:50 ` Markus Probst
2026-04-21 15:32 ` Krzysztof Kozlowski
2026-04-21 16:25 ` Markus Probst
2026-04-23 9:38 ` Krzysztof Kozlowski
2026-04-20 14:24 ` [PATCH v8 2/2] platform: Add initial synology microp driver Markus Probst
2026-04-21 11:59 ` Ilpo Järvinen
2026-04-21 14:17 ` Markus Probst
2026-04-21 14:58 ` Miguel Ojeda
2026-04-21 18:10 ` Ilpo Järvinen [this message]
2026-04-21 18:20 ` Markus Probst
2026-04-21 18:36 ` Ilpo Järvinen
2026-04-21 18:46 ` Miguel Ojeda
2026-04-22 13:48 ` FUJITA Tomonori
2026-04-21 15:33 ` Krzysztof Kozlowski
2026-04-21 16:29 ` Markus Probst
2026-04-20 15:55 ` [PATCH v8 0/2] Introduce Synology Microp driver Markus Probst
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=e166861c-e75d-d1c2-61e8-f611e6ee1ef2@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=a.hindborg@kernel.org \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=conor+dt@kernel.org \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=hansg@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=markus.probst@posteo.de \
--cc=ojeda@kernel.org \
--cc=pavel@kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=robh@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--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 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.