From: "David E. Box" <david.e.box@linux.intel.com>
To: corbet@lwn.net, bhelgaas@google.com, kuurtb@gmail.com,
hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com,
vkoul@kernel.org, yung-chuan.liao@linux.intel.com,
pierre-louis.bossart@linux.dev, sanyog.r.kale@intel.com,
gregkh@linuxfoundation.org, rafael@kernel.org, dakr@kernel.org,
david.e.box@linux.intel.com, dan.j.williams@intel.com,
andriy.shevchenko@linux.intel.com
Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
Dell.Client.Kernel@dell.com, linux-sound@vger.kernel.org
Subject: [PATCH 0/7] sysfs: Introduce macros for attribute groups with visibility control
Date: Wed, 23 Apr 2025 10:50:30 -0700 [thread overview]
Message-ID: <20250423175040.784680-1-david.e.box@linux.intel.com> (raw)
The ATTRIBUTE_GROUP() helper does not support adding an .is_visible
function for visibility control. With the introduction of
SYSFS_GROUP_VISIBLE, DEFINE_SYSFS_GROUP_VISIBLE, and related macros,
attribute group definitions can now fully encapsulate visibility logic
while eliminating boilerplate code.
The following new macros are introduced:
NAMED_ATTRIBUTE_GROUP_VISIBLE()
NAMED_ATTRIBUTE_GROUPS_VISIBLE()
NAMED_ATTRIBUTE_GROUP_COMBO_VISIBLE()
NAMED_ATTRIBUTE_GROUPS_COMBO_VISIBLE()
This isn’t just a cleanup effort — I plan to use these macros in new driver
code I'm working on, and wanted to avoid having to open-code these common
visibility patterns yet again. Documenting and generalizing them now will
help avoid duplication and make future code easier to read and maintain.
These macros integrate visibility logic directly into attribute group
definitions, improving readability and maintainability. The
DEFINE[_SIMPLE_]ATTRIBUTE_GROUP_VISIBLE() macros current have four users.
Two out of them could be modified. The usbtouchscreen driver uses the @name
field which isn't supported by ATTRIBUTE_GROUPS(). But for the ones that
could be modified the diffstat was significant:
drivers/pci/doe.c | 2 +-
drivers/platform/x86/dell/alienware-wmi-base.c | 23 +++++++++--------------
drivers/platform/x86/dell/alienware-wmi-wmax.c | 7 ++++---
drivers/soundwire/sysfs_slave.c | 32 +++++++++++++-------------------
4 files changed, 27 insertions(+), 37 deletions(-)
David E. Box (7):
sysfs: Rename attribute group visibility macros
sysfs: Introduce macros to simplify creation of visible attribute
groups
docs: sysfs.rst: document additional attribute group macros
pci: doe: Replace sysfs visibility macro
soundwire: sysfs: Use ATTRIBUTE_GROUP_VISIBLE()
platform/x86/dell: alienware-wmi: update sysfs visibility macros
sysfs: Remove transitional attribute group alias macros
Documentation/filesystems/sysfs.rst | 244 ++++++++++++++++++
drivers/pci/doe.c | 2 +-
.../platform/x86/dell/alienware-wmi-base.c | 23 +-
.../platform/x86/dell/alienware-wmi-wmax.c | 7 +-
drivers/soundwire/sysfs_slave.c | 32 +--
include/linux/sysfs.h | 46 +++-
6 files changed, 306 insertions(+), 48 deletions(-)
base-commit: 9c32cda43eb78f78c73aee4aa344b777714e259b
--
2.43.0
next reply other threads:[~2025-04-23 17:50 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-23 17:50 David E. Box [this message]
2025-04-23 17:50 ` [PATCH 1/7] sysfs: Rename attribute group visibility macros David E. Box
2025-04-24 1:26 ` Dan Williams
2025-04-23 17:50 ` [PATCH 2/7] sysfs: Introduce macros to simplify creation of visible attribute groups David E. Box
2025-04-24 1:32 ` Dan Williams
2025-04-23 17:50 ` [PATCH 3/7] docs: sysfs.rst: document additional attribute group macros David E. Box
2025-04-24 1:34 ` Dan Williams
2025-04-23 17:50 ` [PATCH 4/7] pci: doe: Replace sysfs visibility macro David E. Box
2025-04-24 1:35 ` Dan Williams
2025-04-25 10:57 ` Ilpo Järvinen
2025-04-25 18:13 ` David E. Box
2025-04-26 13:06 ` Ilpo Järvinen
2025-04-23 17:50 ` [PATCH 5/7] soundwire: sysfs: Use ATTRIBUTE_GROUP_VISIBLE() David E. Box
2025-04-24 1:37 ` Dan Williams
2025-04-23 17:50 ` [PATCH 6/7] platform/x86/dell: alienware-wmi: update sysfs visibility macros David E. Box
2025-04-23 18:31 ` Kurt Borja
2025-04-24 3:01 ` Dan Williams
2025-04-23 17:50 ` [PATCH 7/7] sysfs: Remove transitional attribute group alias macros David E. Box
2025-04-24 3:02 ` Dan Williams
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=20250423175040.784680-1-david.e.box@linux.intel.com \
--to=david.e.box@linux.intel.com \
--cc=Dell.Client.Kernel@dell.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=corbet@lwn.net \
--cc=dakr@kernel.org \
--cc=dan.j.williams@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=kuurtb@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=pierre-louis.bossart@linux.dev \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=sanyog.r.kale@intel.com \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).