From: Liang Haowen <nbg2974@gmail.com>
To: linux-leds@vger.kernel.org
Cc: Lee Jones <lee@kernel.org>, Pavel Machek <pavel@kernel.org>,
"Martin K . Petersen" <mkp@kernel.org>,
linux-scsi@vger.kernel.org, platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org,
Denis Benato <denis.benato@linux.dev>,
Armin Wolf <W_Armin@gmx.de>, Hans de Goede <hansg@kernel.org>,
Ilpo Jarvinen <ilpo.jarvinen@linux.intel.com>
Subject: [RFC v8 0/1] leds: asus-aura-scsi: Add ASUS Aura RGB LED driver for ROG NVMe enclosures
Date: Wed, 23 Sep 2026 20:18:31 +0800 [thread overview]
Message-ID: <20260923121832.2613187-1-nbg2974@gmail.com> (raw)
Hello,
v8, as its own thread. It addresses every comment from Lee's v6
review and Ilpo's line review; the notes below say what was done per
comment and where I think a comment rests on a misunderstanding, I
say so instead of silently keeping the code.
The submission format is git send-email from v7 on, the driver lives
in drivers/leds/rgb/, and it still has no Kconfig wiring: it is the
verified out-of-tree module, the wiring lands with the agreed SCSI
split. On the SCSI device handler itself: it is an out-of-tree
expedient, not a design statement. The enclosure exposes a single
mass-storage interface that usb-storage owns, so a USB interface
driver cannot claim it without taking the disk down, and hooking the
SCSI bus from a module needs the unexported scsi_bus_type. The
device handler is the one hook that observes the sdev without
claiming it. For in-tree, the attachment should move under
drivers/scsi in whichever form the SCSI side prefers, notifier or an
exported attach helper, and I will rework it accordingly.
Changes against the review comments:
- Includes sorted alphabetically, linux/err.h added (Ilpo).
- The vendor CDB is now struct ene_cdb, __packed, with named fields
and a __be16 register set with cpu_to_be16() (Lee, Ilpo), plus a
static_assert on the 16-byte size.
- The ENE register defines carry plain comments; the R,B,G wire
order has named indices (ENE_WIRE_R/B/G) so the reordering against
the R,G,B subleds no longer relies on magic numbers (Lee, Ilpo).
- struct asus_aura_zone became struct asus_aura, the per-enclosure
context; the dirty bitmask is gone, each LED carries its own
pending flag (Lee: LED-level attribute, faux indexing removed).
- The work item returns before touching the device when nothing is
pending: an unlocked scan first, since a colour arriving after the
scan re-queues the work (Lee). The locked snapshot follows.
- The write payload is copied into a DMA-safe per-device buffer
before blk_rq_map_kern(); no stack memory is ever mapped for DMA
(Lee, VMAP_STACK).
- ene_write() became ene_write_reg() with a tx buffer argument, the
arg_count branch is gone (never false), and it returns 0/-EIO
instead of the raw SAM status; the rationale for not using
scsi_execute_cmd() moved to the commit message (Lee).
- The 10 s timeout dropped to 5 s, the development-history comments
are gone, declarations are unwrapped, loop variables are declared
in the loop, lines are reflowed to 100 columns, the code is grouped
with blank lines, and
asus_aura_register_led() frees its own name on failure (Lee).
- dev_err_ratelimited() instead of dev_err() on the work error path
(Ilpo); _once() would hide a persistently failing device, and
there is no caller to report to, the work runs detached from the
LED core (Lee).
- strscpy() uses the 2-arg form (Ilpo).
Two comments I did not act on:
- .module = THIS_MODULE in the device handler: the in-tree handlers
(scsi_dh_alua, scsi_dh_emc) set it explicitly as well, so I kept
it, but I am happy to drop it if the subsystem prefers.
- kzalloc_obj() stays: checkpatch on 7.2 prefers it over kzalloc()
with sizeof, and the sashiko report against it is based on an
older tree (it has been in include/linux/slab.h since v7.0).
v8 was verified on hardware again: the four LEDs, per-LED colours,
60 sequential updates, unplug under load (zero splats, zero leaked
nodes, clean rmmod).
Comments on the interface shape and on folding this into the shared
Aura work with Denis remain very welcome.
Liang Haowen (1):
leds: asus-aura-scsi: Add ASUS Aura RGB LED driver for ROG NVMe
enclosures
--
2.55.0
next reply other threads:[~2026-09-23 12:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 12:18 Liang Haowen [this message]
2026-09-23 12:18 ` [RFC v8 1/1] " Liang Haowen
2026-09-23 12:45 ` Ilpo Järvinen
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=20260923121832.2613187-1-nbg2974@gmail.com \
--to=nbg2974@gmail.com \
--cc=W_Armin@gmx.de \
--cc=denis.benato@linux.dev \
--cc=hansg@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=lee@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mkp@kernel.org \
--cc=pavel@kernel.org \
--cc=platform-driver-x86@vger.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 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®