[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241107060254.17615-11-mario.limonciello@amd.com>
Date: Thu, 7 Nov 2024 00:02:44 -0600
From: Mario Limonciello <mario.limonciello@....com>
To: Hans de Goede <hdegoede@...hat.com>, Ilpo Järvinen
<ilpo.jarvinen@...ux.intel.com>
CC: "Rafael J . Wysocki" <rafael@...nel.org>, Len Brown <lenb@...nel.org>,
Maximilian Luz <luzmaximilian@...il.com>, Lee Chun-Yi <jlee@...e.com>, "Shyam
Sundar S K" <Shyam-sundar.S-k@....com>, Corentin Chary
<corentin.chary@...il.com>, "Luke D . Jones" <luke@...nes.dev>, Ike Panhc
<ike.pan@...onical.com>, Henrique de Moraes Holschuh <hmh@....eng.br>,
"Alexis Belmonte" <alexbelm48@...il.com>, Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>, Ai Chao <aichao@...inos.cn>, Gergo Koteles
<soyer@....hu>, open list <linux-kernel@...r.kernel.org>, "open list:ACPI"
<linux-acpi@...r.kernel.org>, "open list:MICROSOFT SURFACE PLATFORM PROFILE
DRIVER" <platform-driver-x86@...r.kernel.org>, "open list:THINKPAD ACPI
EXTRAS DRIVER" <ibm-acpi-devel@...ts.sourceforge.net>, Mark Pearson
<mpearson-lenovo@...ebb.ca>, Matthew Schwartz <matthew.schwartz@...ux.dev>,
Mario Limonciello <mario.limonciello@....com>
Subject: [PATCH v5 10/20] ACPI: platform_profile: Add name attribute to class interface
The name attribute shows the name of the associated platform profile
handler.
Tested-by: Mark Pearson <mpearson-lenovo@...ebb.ca>
Signed-off-by: Mario Limonciello <mario.limonciello@....com>
---
v5:
* Drop newline
* Add mutex for sysfs access
---
drivers/acpi/platform_profile.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/acpi/platform_profile.c b/drivers/acpi/platform_profile.c
index 9caf070f77f6a..f605c2bd35c68 100644
--- a/drivers/acpi/platform_profile.c
+++ b/drivers/acpi/platform_profile.c
@@ -25,8 +25,35 @@ static_assert(ARRAY_SIZE(profile_names) == PLATFORM_PROFILE_LAST);
static DEFINE_IDA(platform_profile_ida);
+/**
+ * name_show - Show the name of the profile handler
+ * @dev: The device
+ * @attr: The attribute
+ * @buf: The buffer to write to
+ * Return: The number of bytes written
+ */
+static ssize_t name_show(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ scoped_cond_guard(mutex_intr, return -ERESTARTSYS, &profile_lock) {
+ struct platform_profile_handler *handler = dev_get_drvdata(dev);
+
+ return sysfs_emit(buf, "%s\n", handler->name);
+ }
+ return -ERESTARTSYS;
+}
+
+static DEVICE_ATTR_RO(name);
+static struct attribute *profile_attrs[] = {
+ &dev_attr_name.attr,
+ NULL
+};
+ATTRIBUTE_GROUPS(profile);
+
static const struct class platform_profile_class = {
.name = "platform-profile",
+ .dev_groups = profile_groups,
};
static ssize_t platform_profile_choices_show(struct device *dev,
--
2.43.0
Powered by blists - more mailing lists