From: Kurt Borja <kuurtb@gmail.com>
To: platform-driver-x86@vger.kernel.org
Cc: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"Armin Wolf" <W_Armin@gmx.de>,
"Mario Limonciello" <mario.limonciello@amd.com>,
"Hans de Goede" <hdegoede@redhat.com>,
Dell.Client.Kernel@dell.com, linux-kernel@vger.kernel.org,
"Kurt Borja" <kuurtb@gmail.com>
Subject: [PATCH v5 05/14] platform/x86: alienware-wmi: Refactor hdmi, amplifier, deepslp methods
Date: Sun, 19 Jan 2025 17:05:33 -0500 [thread overview]
Message-ID: <20250119220542.3136-6-kuurtb@gmail.com> (raw)
In-Reply-To: <20250119220542.3136-1-kuurtb@gmail.com>
Refactor show/store methods for hdmi, amplifier, deepslp sysfs groups to
use alienware_wmi_command() instead of alienware_wmax_command() which
uses deprecated WMI methods.
Reviewed-by: Armin Wolf <W_Armin@gmx.de>
Signed-off-by: Kurt Borja <kuurtb@gmail.com>
---
drivers/platform/x86/dell/alienware-wmi.c | 80 +++++++++++++----------
1 file changed, 45 insertions(+), 35 deletions(-)
diff --git a/drivers/platform/x86/dell/alienware-wmi.c b/drivers/platform/x86/dell/alienware-wmi.c
index 18f3a619283e..3e9c00363a8a 100644
--- a/drivers/platform/x86/dell/alienware-wmi.c
+++ b/drivers/platform/x86/dell/alienware-wmi.c
@@ -702,53 +702,57 @@ static acpi_status alienware_wmax_command(void *in_args, size_t in_size,
static ssize_t cable_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
+ struct alienfx_platdata *pdata = dev_get_platdata(dev);
struct wmax_basic_args in_args = {
.arg = 0,
};
- acpi_status status;
u32 out_data;
+ int ret;
+
+ ret = alienware_wmi_command(pdata->wdev, WMAX_METHOD_HDMI_CABLE,
+ &in_args, sizeof(in_args), &out_data);
- status =
- alienware_wmax_command(&in_args, sizeof(in_args),
- WMAX_METHOD_HDMI_CABLE, &out_data);
- if (ACPI_SUCCESS(status)) {
+ if (!ret) {
if (out_data == 0)
return sysfs_emit(buf, "[unconnected] connected unknown\n");
else if (out_data == 1)
return sysfs_emit(buf, "unconnected [connected] unknown\n");
}
- pr_err("alienware-wmi: unknown HDMI cable status: %d\n", status);
+
+ pr_err("alienware-wmi: unknown HDMI cable status: %d\n", ret);
return sysfs_emit(buf, "unconnected connected [unknown]\n");
}
static ssize_t source_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
+ struct alienfx_platdata *pdata = dev_get_platdata(dev);
struct wmax_basic_args in_args = {
.arg = 0,
};
- acpi_status status;
u32 out_data;
+ int ret;
- status =
- alienware_wmax_command(&in_args, sizeof(in_args),
- WMAX_METHOD_HDMI_STATUS, &out_data);
+ ret = alienware_wmi_command(pdata->wdev, WMAX_METHOD_HDMI_STATUS,
+ &in_args, sizeof(in_args), &out_data);
- if (ACPI_SUCCESS(status)) {
+ if (!ret) {
if (out_data == 1)
return sysfs_emit(buf, "[input] gpu unknown\n");
else if (out_data == 2)
return sysfs_emit(buf, "input [gpu] unknown\n");
}
- pr_err("alienware-wmi: unknown HDMI source status: %u\n", status);
+
+ pr_err("alienware-wmi: unknown HDMI source status: %u\n", ret);
return sysfs_emit(buf, "input gpu [unknown]\n");
}
static ssize_t source_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
+ struct alienfx_platdata *pdata = dev_get_platdata(dev);
struct wmax_basic_args args;
- acpi_status status;
+ int ret;
if (strcmp(buf, "gpu\n") == 0)
args.arg = 1;
@@ -758,12 +762,12 @@ static ssize_t source_store(struct device *dev, struct device_attribute *attr,
args.arg = 3;
pr_debug("alienware-wmi: setting hdmi to %d : %s", args.arg, buf);
- status = alienware_wmax_command(&args, sizeof(args),
- WMAX_METHOD_HDMI_SOURCE, NULL);
+ ret = alienware_wmi_command(pdata->wdev, WMAX_METHOD_HDMI_SOURCE, &args,
+ sizeof(args), NULL);
+
+ if (ret < 0)
+ pr_err("alienware-wmi: HDMI toggle failed: results: %u\n", ret);
- if (ACPI_FAILURE(status))
- pr_err("alienware-wmi: HDMI toggle failed: results: %u\n",
- status);
return count;
}
@@ -796,22 +800,24 @@ static const struct attribute_group hdmi_attribute_group = {
static ssize_t status_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
+ struct alienfx_platdata *pdata = dev_get_platdata(dev);
struct wmax_basic_args in_args = {
.arg = 0,
};
- acpi_status status;
u32 out_data;
+ int ret;
- status =
- alienware_wmax_command(&in_args, sizeof(in_args),
- WMAX_METHOD_AMPLIFIER_CABLE, &out_data);
- if (ACPI_SUCCESS(status)) {
+ ret = alienware_wmi_command(pdata->wdev, WMAX_METHOD_AMPLIFIER_CABLE,
+ &in_args, sizeof(in_args), &out_data);
+
+ if (!ret) {
if (out_data == 0)
return sysfs_emit(buf, "[unconnected] connected unknown\n");
else if (out_data == 1)
return sysfs_emit(buf, "unconnected [connected] unknown\n");
}
- pr_err("alienware-wmi: unknown amplifier cable status: %d\n", status);
+
+ pr_err("alienware-wmi: unknown amplifier cable status: %d\n", ret);
return sysfs_emit(buf, "unconnected connected [unknown]\n");
}
@@ -841,15 +847,17 @@ static const struct attribute_group amplifier_attribute_group = {
static ssize_t deepsleep_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
+ struct alienfx_platdata *pdata = dev_get_platdata(dev);
struct wmax_basic_args in_args = {
.arg = 0,
};
- acpi_status status;
u32 out_data;
+ int ret;
- status = alienware_wmax_command(&in_args, sizeof(in_args),
- WMAX_METHOD_DEEP_SLEEP_STATUS, &out_data);
- if (ACPI_SUCCESS(status)) {
+ ret = alienware_wmi_command(pdata->wdev, WMAX_METHOD_DEEP_SLEEP_STATUS,
+ &in_args, sizeof(in_args), &out_data);
+
+ if (!ret) {
if (out_data == 0)
return sysfs_emit(buf, "[disabled] s5 s5_s4\n");
else if (out_data == 1)
@@ -857,15 +865,17 @@ static ssize_t deepsleep_show(struct device *dev, struct device_attribute *attr,
else if (out_data == 2)
return sysfs_emit(buf, "disabled s5 [s5_s4]\n");
}
- pr_err("alienware-wmi: unknown deep sleep status: %d\n", status);
+
+ pr_err("alienware-wmi: unknown deep sleep status: %d\n", ret);
return sysfs_emit(buf, "disabled s5 s5_s4 [unknown]\n");
}
static ssize_t deepsleep_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
+ struct alienfx_platdata *pdata = dev_get_platdata(dev);
struct wmax_basic_args args;
- acpi_status status;
+ int ret;
if (strcmp(buf, "disabled\n") == 0)
args.arg = 0;
@@ -875,12 +885,12 @@ static ssize_t deepsleep_store(struct device *dev, struct device_attribute *attr
args.arg = 2;
pr_debug("alienware-wmi: setting deep sleep to %d : %s", args.arg, buf);
- status = alienware_wmax_command(&args, sizeof(args),
- WMAX_METHOD_DEEP_SLEEP_CONTROL, NULL);
+ ret = alienware_wmi_command(pdata->wdev, WMAX_METHOD_DEEP_SLEEP_CONTROL,
+ &args, sizeof(args), NULL);
+
+ if (!ret)
+ pr_err("alienware-wmi: deep sleep control failed: results: %u\n", ret);
- if (ACPI_FAILURE(status))
- pr_err("alienware-wmi: deep sleep control failed: results: %u\n",
- status);
return count;
}
--
2.48.1
next prev parent reply other threads:[~2025-01-19 22:06 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-19 22:05 [PATCH v5 00/14] platform/x86: alienware-wmi driver rework Kurt Borja
2025-01-19 22:05 ` [PATCH v5 01/14] platform/x86: alienware-wmi: Add a state container for LED control feature Kurt Borja
2025-01-19 22:05 ` [PATCH v5 02/14] platform/x86: alienware-wmi: Add WMI Drivers Kurt Borja
2025-01-24 21:17 ` Armin Wolf
2025-01-19 22:05 ` [PATCH v5 03/14] platform/x86: alienware-wmi: Add a state container for thermal control methods Kurt Borja
2025-01-19 22:05 ` [PATCH v5 04/14] platform/x86: alienware-wmi: Refactor LED " Kurt Borja
2025-01-19 22:05 ` Kurt Borja [this message]
2025-01-19 22:05 ` [PATCH v5 06/14] platform/x86: alienware-wmi: Refactor thermal " Kurt Borja
2025-01-19 22:05 ` [PATCH v5 07/14] platform/x86: alienware-wmi: Split DMI table Kurt Borja
2025-01-19 22:05 ` [PATCH v5 08/14] MAINTAINERS: Update ALIENWARE WMI DRIVER entry Kurt Borja
2025-01-19 22:05 ` [PATCH v5 09/14] platform/x86: Rename alienware-wmi.c Kurt Borja
2025-01-19 22:05 ` [PATCH v5 10/14] platform/x86: Add alienware-wmi.h Kurt Borja
2025-01-19 22:05 ` [PATCH v5 11/14] platform/x86: Split the alienware-wmi driver Kurt Borja
2025-01-19 22:05 ` [PATCH v5 12/14] platform/x86: dell: Modify Makefile alignment Kurt Borja
2025-01-19 22:05 ` [PATCH v5 13/14] platform/x86: Update alienware-wmi config entries Kurt Borja
2025-01-19 22:05 ` [PATCH v5 14/14] platform/x86: alienware-wmi: Update header and module information Kurt Borja
2025-01-24 21:18 ` [PATCH v5 00/14] platform/x86: alienware-wmi driver rework Armin Wolf
2025-01-25 3:27 ` Kurt Borja
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=20250119220542.3136-6-kuurtb@gmail.com \
--to=kuurtb@gmail.com \
--cc=Dell.Client.Kernel@dell.com \
--cc=W_Armin@gmx.de \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--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 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.