From nobody Fri Dec 19 04:54:16 2025 Received: from mail-vs1-f46.google.com (mail-vs1-f46.google.com [209.85.217.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3BB51991CA; Sun, 29 Dec 2024 19:47:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.217.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735501643; cv=none; b=Bhk3Y2bV0ndRMZ3vGTsiKI0YvA3Wi+220gZ/xnSoMKgvAbatG4/jsDscvVVPFPzDVLkhj2uJvGbtCJJnb5KUtGkEDOOXiaztRq3tXSZwqiqHW9E/YMJGHQRKXfgunaBzmr5H7hJfSKxmjyLrH8kcZk96kXnZ7NnltGqwo+L4m6A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735501643; c=relaxed/simple; bh=Fo/reKXQaWFod91NVa6ySLLULPChx1Z5jaBt1CdcDbk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sgSL/x5YMa75l6Vcn3sXMc8kJjOr0idu+lAXslCiDd2Ext6YNK8CGqQvVHTvYNXVVpXJ7t3Rcw+I/c7ugVQumMf1DJ/U6BDEkx3RgkKYS50sJ5A8tWkYRrvSgAbBMe/LLmdA7h7rio33fWUN9QZiYOODhs+NvWL6WaqKPt2KZng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bGdQttle; arc=none smtp.client-ip=209.85.217.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bGdQttle" Received: by mail-vs1-f46.google.com with SMTP id ada2fe7eead31-4afdfefc6c1so2710640137.0; Sun, 29 Dec 2024 11:47:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735501640; x=1736106440; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=26zRb9SO4oyO1l/IKWE69oOuzufFPeKoUfwe5RGXw+c=; b=bGdQttlePwgx0L50qE6n3F2bPlAqKVwYIR+ZJ0sSgMq+3bbqV5rfIMDNxYhb6nfDmk NvpSgFTzG/mfJsai+E9wlX3uAMp4/DGs0Vdav9MviinoULXZB2ZFmWS9bFEkl9Oi7t2Q FshMn9m3oXjn9HdeB650HfxYkiIxwacmBRuJwA5mN7fKJOkS12ux2W6sLXLOcIW0KkcX 3P8o3l78mQpMkivYXyxGPXdA5ZotYpXLGzAxZ/zMBtCob8W0/hyYG55bVM8a1FwchJ9v RbhSJsi0kvyujRmg0m+eCCL4okDumefXyLNoR5ubL0Z0AlyP/TF7j3ssGX0DvC8uJKk2 MHyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735501640; x=1736106440; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=26zRb9SO4oyO1l/IKWE69oOuzufFPeKoUfwe5RGXw+c=; b=pS4Cey2n4VDsnccxzeCrSiuquJSkf/rhFcR1JqejPeKLVfqDWWLQdRiCS2BPHvI0DV INzewezgsMfLP7ORjX3VCrlzHFSF1w6eH6wKgH5A7NlB+M2MhaKeCpE+SYDqOysCEAhN pUFyzw1EkBijbKQ+mwVqhF2HzMS+VmpeyEZd8tmusYxRhdybYDMieN0AfJ8gY3qFZESd mjguJQxuiMt6Hcu+34py5PTx18z19+Y3iDYBZ7ulj4ueMVie0x/+5/K2aY6Z0MioB4ga q60AY9aZHQPOJB/DBszBidswmdNLor/M+m6f29C+nTO9CgOTvvwGvbDiVCCkAm0sfLJk MzXw== X-Forwarded-Encrypted: i=1; AJvYcCXHOrxNY6coOmNUH9Za5UcygD2eX8aWrE+IlSQwCrK9PoNwDU5FdMym7oexxGOKj/sMOUDR+jrkEf/mWNU=@vger.kernel.org X-Gm-Message-State: AOJu0YworbGfi4PCHtXcZTUPNIHm0KIU7Gt50eaRFocO22VRCQGlg5QR LOhv+PfkG76IMCwhKxXZjtbY7JHuhDzWP8H9b85LBTOTATWYOltYsWKpsg== X-Gm-Gg: ASbGncv9EdnUlFsG5MldiQ4491ZcsD5e0bb9Gci7kztyDlnHdXeMGCzUXLbqU9rc2Gy aQXKQwS7MzowTs9dPW8FIDMh3YUjWsWWkYgeE3V+jOKp0pQSUgin1pc5nweWmpYcVyGfkxQSqnB g6q4BKPOMhKM8mlmEBSs+BCjccjG7rasXeOAc+GcPtP0dEe4OuyGIO5Pm6no73u3bpgaNAM+sKn /D5aht/VoanG1SVQL4adlrMAZo4nyQsuTIGNTOQgpvgiFXZN55e6XOy5O1shrLv X-Google-Smtp-Source: AGHT+IGsM4O1ZX3d6DnQ3WrM03OEO1Rt7EAi3m7bqHsSS0cInrEVIOI4yDmKfnnKOpcXIGgrYw2YbA== X-Received: by 2002:a05:6102:26cd:b0:4b1:2010:5cd7 with SMTP id ada2fe7eead31-4b2cc3511eemr27023871137.8.1735501640224; Sun, 29 Dec 2024 11:47:20 -0800 (PST) Received: from localhost.localdomain ([2800:bf0:82:1159:1ea9:11b1:7af9:1277]) by smtp.gmail.com with ESMTPSA id ada2fe7eead31-4b2bf98ce0fsm3753555137.3.2024.12.29.11.47.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Dec 2024 11:47:19 -0800 (PST) From: Kurt Borja To: platform-driver-x86@vger.kernel.org Cc: Dell.Client.Kernel@dell.com, hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, linux-kernel@vger.kernel.org, mario.limonciello@amd.com, w_armin@gmx.de, Kurt Borja , Armin Wolf Subject: [PATCH v2 11/20] alienware-wmi: Refactor hdmi, amplifier, deepslp methods Date: Sun, 29 Dec 2024 14:44:58 -0500 Message-ID: <20241229194506.8268-13-kuurtb@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20241229194506.8268-2-kuurtb@gmail.com> References: <20241229194506.8268-2-kuurtb@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 Signed-off-by: Kurt Borja --- drivers/platform/x86/dell/alienware-wmi.c | 85 +++++++++++++---------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/drivers/platform/x86/dell/alienware-wmi.c b/drivers/platform/x= 86/dell/alienware-wmi.c index 494a3772065c..ea276d32cf14 100644 --- a/drivers/platform/x86/dell/alienware-wmi.c +++ b/drivers/platform/x86/dell/alienware-wmi.c @@ -698,51 +698,58 @@ static acpi_status alienware_wmax_command(void *in_ar= gs, size_t in_size, static ssize_t cable_show(struct device *dev, struct device_attribute *att= r, char *buf) { + struct alienfx_platdata *pdata =3D dev_get_platdata(dev); struct wmax_basic_args in_args =3D { .arg =3D 0, }; - acpi_status status; u32 out_data; - status =3D - alienware_wmax_command(&in_args, sizeof(in_args), - WMAX_METHOD_HDMI_CABLE, &out_data); - if (ACPI_SUCCESS(status)) { + int ret; + + ret =3D alienware_wmi_command(pdata->wdev, WMAX_METHOD_HDMI_CABLE, + &in_args, sizeof(in_args), &out_data); + + if (!ret) { if (out_data =3D=3D 0) return sysfs_emit(buf, "[unconnected] connected unknown\n"); else if (out_data =3D=3D 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"); } =20 static ssize_t source_show(struct device *dev, struct device_attribute *at= tr, char *buf) { + struct alienfx_platdata *pdata =3D dev_get_platdata(dev); struct wmax_basic_args in_args =3D { .arg =3D 0, }; - acpi_status status; u32 out_data; - status =3D - alienware_wmax_command(&in_args, sizeof(in_args), - WMAX_METHOD_HDMI_STATUS, &out_data); + int ret; =20 - if (ACPI_SUCCESS(status)) { + ret =3D alienware_wmi_command(pdata->wdev, WMAX_METHOD_HDMI_STATUS, + &in_args, sizeof(in_args), &out_data); + + if (!ret) { if (out_data =3D=3D 1) return sysfs_emit(buf, "[input] gpu unknown\n"); else if (out_data =3D=3D 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"); } =20 static ssize_t source_store(struct device *dev, struct device_attribute *a= ttr, const char *buf, size_t count) { + struct alienfx_platdata *pdata =3D dev_get_platdata(dev); struct wmax_basic_args args; - acpi_status status; + int ret; + if (strcmp(buf, "gpu\n") =3D=3D 0) args.arg =3D 1; else if (strcmp(buf, "input\n") =3D=3D 0) @@ -751,12 +758,12 @@ static ssize_t source_store(struct device *dev, struc= t device_attribute *attr, args.arg =3D 3; pr_debug("alienware-wmi: setting hdmi to %d : %s", args.arg, buf); =20 - status =3D alienware_wmax_command(&args, sizeof(args), - WMAX_METHOD_HDMI_SOURCE, NULL); + ret =3D 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); =20 - if (ACPI_FAILURE(status)) - pr_err("alienware-wmi: HDMI toggle failed: results: %u\n", - status); return count; } =20 @@ -791,21 +798,24 @@ static const struct attribute_group hdmi_attribute_gr= oup =3D { static ssize_t status_show(struct device *dev, struct device_attribute *at= tr, char *buf) { + struct alienfx_platdata *pdata =3D dev_get_platdata(dev); struct wmax_basic_args in_args =3D { .arg =3D 0, }; - acpi_status status; u32 out_data; - status =3D - alienware_wmax_command(&in_args, sizeof(in_args), - WMAX_METHOD_AMPLIFIER_CABLE, &out_data); - if (ACPI_SUCCESS(status)) { + int ret; + + ret =3D alienware_wmi_command(pdata->wdev, WMAX_METHOD_AMPLIFIER_CABLE, + &in_args, sizeof(in_args), &out_data); + + if (!ret) { if (out_data =3D=3D 0) return sysfs_emit(buf, "[unconnected] connected unknown\n"); else if (out_data =3D=3D 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"); } =20 @@ -837,14 +847,17 @@ static const struct attribute_group amplifier_attribu= te_group =3D { static ssize_t deepsleep_show(struct device *dev, struct device_attribute = *attr, char *buf) { + struct alienfx_platdata *pdata =3D dev_get_platdata(dev); struct wmax_basic_args in_args =3D { .arg =3D 0, }; - acpi_status status; u32 out_data; - status =3D alienware_wmax_command(&in_args, sizeof(in_args), - WMAX_METHOD_DEEP_SLEEP_STATUS, &out_data); - if (ACPI_SUCCESS(status)) { + int ret; + + ret =3D alienware_wmi_command(pdata->wdev, WMAX_METHOD_DEEP_SLEEP_STATUS, + &in_args, sizeof(in_args), &out_data); + + if (!ret) { if (out_data =3D=3D 0) return sysfs_emit(buf, "[disabled] s5 s5_s4\n"); else if (out_data =3D=3D 1) @@ -852,15 +865,17 @@ static ssize_t deepsleep_show(struct device *dev, str= uct device_attribute *attr, else if (out_data =3D=3D 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"); } =20 static ssize_t deepsleep_store(struct device *dev, struct device_attribute= *attr, const char *buf, size_t count) { + struct alienfx_platdata *pdata =3D dev_get_platdata(dev); struct wmax_basic_args args; - acpi_status status; + int ret; =20 if (strcmp(buf, "disabled\n") =3D=3D 0) args.arg =3D 0; @@ -870,12 +885,12 @@ static ssize_t deepsleep_store(struct device *dev, st= ruct device_attribute *attr args.arg =3D 2; pr_debug("alienware-wmi: setting deep sleep to %d : %s", args.arg, buf); =20 - status =3D alienware_wmax_command(&args, sizeof(args), - WMAX_METHOD_DEEP_SLEEP_CONTROL, NULL); + ret =3D 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); =20 - if (ACPI_FAILURE(status)) - pr_err("alienware-wmi: deep sleep control failed: results: %u\n", - status); return count; } =20 --=20 2.47.1