From patchwork Mon Jan 13 13:14:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hridesh MG X-Patchwork-Id: 13937338 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 ED47E235BFB; Mon, 13 Jan 2025 13:14:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774067; cv=none; b=giCQKRc3e+bh4wT/CpLwyLR96zWqoNN/3MLtF5R7nVJbD8sXuMV0BXlfEQC2eoaEePEtsiXsUhzdUo8prz/jg6Vj0P6Tj9/sZ04PuUeMRlAZt6VkQ6t3UVeAFKdqpOhaBhKv0yxuD1kkviND5jLyKSQtyG35KZHXVckwoSWO4Lc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774067; c=relaxed/simple; bh=gElo3N9lwBjEg7rGQWLhBXorz3Jj1q0USp6HX7CoXuc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gLTQDbpql7BdzNBMwm75TCd7CfO/l/fBZ8q6H40e3wqdTxfNLxsN+GQWE0WBbVQE1XfvY9E6NdecdZG5F4Wh6QEAkBzNmEyefKmcJ8KXHEVa95n+RdQ/59z0YYWjYV3NLsCb51VsoP0n30ABmbW4TornCoc9ZIJUS9KyiuSOiTs= 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=F/1JdFhp; arc=none smtp.client-ip=209.85.214.175 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="F/1JdFhp" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-218c8aca5f1so90421685ad.0; Mon, 13 Jan 2025 05:14:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736774065; x=1737378865; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ZX+gi9tRKOU016KJSudjX4GlzuFnKLU29YduivwRZI4=; b=F/1JdFhpQyBASKY41jXQ0Rb5/faFZhmTUJy/pYIHy+C3IdGND4tEV/iTY9RNUAuBk8 5oo2JuKQax/J5MqqpfoSLcxCCRzITXwSmrrsFaaw6v75XvRzDOb/oTMbQd9BGNRSfgqa 4pjfRGF+/VaMunzRm4z6HUvG9bGWw/eAve0ICGPMSNOMBOkgUD13/ROVr+PdMi2Lg09+ ykkO0HNeYdLmd15pcStagu3WGetvWxnRponyC98eOo9w3j0ODN/S8QgV7HtmsjmCQn0i KqOucRPItZlJu7EhV7TPMhgbnlsUgowPItSuBOjYK78yzBRECV18mFnfOe5nsI/EQGve f0DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736774065; x=1737378865; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZX+gi9tRKOU016KJSudjX4GlzuFnKLU29YduivwRZI4=; b=F95GSGmnrHT17+vLLQo/IMtPWEvTuB8PFgL7rHO+mMAdhg0NICwof/AVtqkAYc/Zqh TKWJqUDv3pTrYEZw+6fDRKknR1MtPJ71hR4TutL0wos+19A++lCprYw/GyksqCrOlXWi 3NhHccSxXJ0/kv5Kc0278Kh5pOa+9fJgir1oKa2keRY2+rcHmbPaeoBW4tkCa+WBiodl S8k6ORu34uyK1sn3HfLZ0rJSjAnzvYxY7kRSADWyDZv9G9IgpjyNIYXZlCKxB9bkT4Du 9666B7lLZHMWh2B/SX2pImmYHYXCHFLFI2vcJLjfxzEkeJ/0XmVW0S8LYYgiNf2ZzIhB Qg7Q== X-Forwarded-Encrypted: i=1; AJvYcCUke5QUDhpZhQ3wFsnSWow1NiJ4Kr4gctagLy4K7QnLpckDiRbT5Q/hQKUvM3bLuegVtWEywpN63BvxvQQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzUze+cf1AUNXbo9o48vemxmz5OmrXRRnLImvu09jgAnybf3lP4 R1Bn654Aw6K2jvRi3D7TZDtvce2d1oJBa/q+9b6DVAT9VvRz768q/2yGVm+3 X-Gm-Gg: ASbGncuuuLxtg3TiQT4TtqIWskR4n0n5sLw6Cb9C4QjAJWCA0DVPDgteH5j37n1sLzG 8L8273LC7BAeDCOnCFv2o6YO1wfq9FrB6Z37cULmLQ7626ZLSVHOY96GCITtcPcqDy1qBfLurOf g86crzoU+uPZR2S6X7FDPHn7f5gT1lhXk8/2ri5bQp5G2ulgfAsc00bpTQ8XcQomr7rHqkixqz+ bQ5orQPO5K92sEkGzocb2TMsU7ziN9SkfMWsYcHfutEtUECHeUYvLQmAqycFw== X-Google-Smtp-Source: AGHT+IGoXmcHK93DvHnv9fTb+qcBwnpdA4pq01Pl6co7iNkq09UiVjZGJBAQdSmAEGEnRPa3k42vaw== X-Received: by 2002:a05:6a00:2e97:b0:729:49a:2da6 with SMTP id d2e1a72fcca58-72d21f1ac4emr33209309b3a.3.1736774063469; Mon, 13 Jan 2025 05:14:23 -0800 (PST) Received: from [10.113.16.67] ([117.193.77.254]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31840e93absm6961209a12.20.2025.01.13.05.14.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 05:14:22 -0800 (PST) From: Hridesh MG Date: Mon, 13 Jan 2025 18:44:09 +0530 Subject: [PATCH v4 1/5] platform/x86: acer-wmi: use WMI calls for platform profile handling Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250113-platform_profile-v4-1-23be0dff19f1@gmail.com> References: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> In-Reply-To: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> To: Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Armin Wolf , Kurt Borja Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Shuah Khan , Hridesh MG X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1736774055; l=11006; i=hridesh699@gmail.com; s=20241114; h=from:subject:message-id; bh=gElo3N9lwBjEg7rGQWLhBXorz3Jj1q0USp6HX7CoXuc=; b=xD8CcspnF5F2gcVI4TWA4WZ5i8Ufw32Y9+eQNJMKuA6/13hU1a+QZfGbSw1UIt4MXG6RWuZLX CH4ONe4Q6twC7MFv4uuVHFudDaNaqfe0uRxkf5MsEaO/912sre+w6F7 X-Developer-Key: i=hridesh699@gmail.com; a=ed25519; pk=otVQutD5ZTsEpajsGv/haM3pQj0yofkuYrdNcaX5AUE= Improve the platform profile handling by using WMI calls to fetch the current platform profile instead of directly accessing it from the EC. This is beneficial because the EC address differs for certain laptops. Link: https://lore.kernel.org/platform-driver-x86/d7be714c-3103-42ee-ad15-223a3fe67f80@gmx.de/ Co-developed-by: Armin Wolf Signed-off-by: Armin Wolf Reviewed-by: Kurt Borja Signed-off-by: Hridesh MG --- drivers/platform/x86/acer-wmi.c | 185 ++++++++++++++++++++++++++++------------ 1 file changed, 129 insertions(+), 56 deletions(-) diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index b3043d78a7b38a7b773da5ecd4846ca11e8595f5..97eabb0ec42781a27e6a00ce0df4c8a815c1b817 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -31,6 +31,7 @@ #include #include #include +#include #include MODULE_AUTHOR("Carlos Corbacho"); @@ -68,8 +69,11 @@ MODULE_LICENSE("GPL"); #define ACER_WMID_GET_GAMING_SYS_INFO_METHODID 5 #define ACER_WMID_SET_GAMING_FAN_BEHAVIOR 14 #define ACER_WMID_SET_GAMING_MISC_SETTING_METHODID 22 +#define ACER_WMID_GET_GAMING_MISC_SETTING_METHODID 23 -#define ACER_PREDATOR_V4_THERMAL_PROFILE_EC_OFFSET 0x54 +#define ACER_GAMING_MISC_SETTING_STATUS_MASK GENMASK_ULL(7, 0) +#define ACER_GAMING_MISC_SETTING_INDEX_MASK GENMASK_ULL(7, 0) +#define ACER_GAMING_MISC_SETTING_VALUE_MASK GENMASK_ULL(15, 8) #define ACER_PREDATOR_V4_RETURN_STATUS_BIT_MASK GENMASK_ULL(7, 0) #define ACER_PREDATOR_V4_SENSOR_INDEX_BIT_MASK GENMASK_ULL(15, 8) @@ -115,6 +119,10 @@ enum acer_wmi_predator_v4_sensor_id { ACER_WMID_SENSOR_GPU_TEMPERATURE = 0x0A, }; +enum acer_wmi_gaming_misc_setting { + ACER_WMID_MISC_SETTING_PLATFORM_PROFILE = 0x000B, +}; + static const struct key_entry acer_wmi_keymap[] __initconst = { {KE_KEY, 0x01, {KEY_WLAN} }, /* WiFi */ {KE_KEY, 0x03, {KEY_WLAN} }, /* WiFi */ @@ -751,20 +759,12 @@ static bool platform_profile_support; */ static int last_non_turbo_profile; -enum acer_predator_v4_thermal_profile_ec { - ACER_PREDATOR_V4_THERMAL_PROFILE_ECO = 0x04, - ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO = 0x03, - ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE = 0x02, - ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET = 0x01, - ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED = 0x00, -}; - -enum acer_predator_v4_thermal_profile_wmi { - ACER_PREDATOR_V4_THERMAL_PROFILE_ECO_WMI = 0x060B, - ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI = 0x050B, - ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE_WMI = 0x040B, - ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET_WMI = 0x0B, - ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI = 0x010B, +enum acer_predator_v4_thermal_profile { + ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET = 0x00, + ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED = 0x01, + ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE = 0x04, + ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO = 0x05, + ACER_PREDATOR_V4_THERMAL_PROFILE_ECO = 0x06, }; /* Find which quirks are needed for a particular vendor/ model pair */ @@ -1477,6 +1477,45 @@ WMI_gaming_execute_u64(u32 method_id, u64 in, u64 *out) return status; } +static int WMI_gaming_execute_u32_u64(u32 method_id, u32 in, u64 *out) +{ + struct acpi_buffer result = { ACPI_ALLOCATE_BUFFER, NULL }; + struct acpi_buffer input = { + .length = sizeof(in), + .pointer = &in, + }; + union acpi_object *obj; + acpi_status status; + int ret = 0; + + status = wmi_evaluate_method(WMID_GUID4, 0, method_id, &input, &result); + if (ACPI_FAILURE(status)) + return -EIO; + + obj = result.pointer; + if (obj && out) { + switch (obj->type) { + case ACPI_TYPE_INTEGER: + *out = obj->integer.value; + break; + case ACPI_TYPE_BUFFER: + if (obj->buffer.length < sizeof(*out)) + ret = -ENOMSG; + else + *out = get_unaligned_le64(obj->buffer.pointer); + + break; + default: + ret = -ENOMSG; + break; + } + } + + kfree(obj); + + return ret; +} + static acpi_status WMID_gaming_set_u64(u64 value, u32 cap) { u32 method_id = 0; @@ -1565,6 +1604,48 @@ static void WMID_gaming_set_fan_mode(u8 fan_mode) WMID_gaming_set_u64(gpu_fan_config2 | gpu_fan_config1 << 16, ACER_CAP_TURBO_FAN); } +static int WMID_gaming_set_misc_setting(enum acer_wmi_gaming_misc_setting setting, u8 value) +{ + acpi_status status; + u64 input = 0; + u64 result; + + input |= FIELD_PREP(ACER_GAMING_MISC_SETTING_INDEX_MASK, setting); + input |= FIELD_PREP(ACER_GAMING_MISC_SETTING_VALUE_MASK, value); + + status = WMI_gaming_execute_u64(ACER_WMID_SET_GAMING_MISC_SETTING_METHODID, input, &result); + if (ACPI_FAILURE(status)) + return -EIO; + + /* The return status must be zero for the operation to have succeeded */ + if (FIELD_GET(ACER_GAMING_MISC_SETTING_STATUS_MASK, result)) + return -EIO; + + return 0; +} + +static int WMID_gaming_get_misc_setting(enum acer_wmi_gaming_misc_setting setting, u8 *value) +{ + u64 input = 0; + u64 result; + int ret; + + input |= FIELD_PREP(ACER_GAMING_MISC_SETTING_INDEX_MASK, setting); + + ret = WMI_gaming_execute_u32_u64(ACER_WMID_GET_GAMING_MISC_SETTING_METHODID, input, + &result); + if (ret < 0) + return ret; + + /* The return status must be zero for the operation to have succeeded */ + if (FIELD_GET(ACER_GAMING_MISC_SETTING_STATUS_MASK, result)) + return -EIO; + + *value = FIELD_GET(ACER_GAMING_MISC_SETTING_VALUE_MASK, result); + + return 0; +} + /* * Generic Device (interface-independent) */ @@ -1833,9 +1914,8 @@ acer_predator_v4_platform_profile_get(struct platform_profile_handler *pprof, u8 tp; int err; - err = ec_read(ACER_PREDATOR_V4_THERMAL_PROFILE_EC_OFFSET, &tp); - - if (err < 0) + err = WMID_gaming_get_misc_setting(ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, &tp); + if (err) return err; switch (tp) { @@ -1865,36 +1945,33 @@ static int acer_predator_v4_platform_profile_set(struct platform_profile_handler *pprof, enum platform_profile_option profile) { - int tp; - acpi_status status; + int err, tp; switch (profile) { case PLATFORM_PROFILE_PERFORMANCE: - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; break; case PLATFORM_PROFILE_BALANCED_PERFORMANCE: - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; break; case PLATFORM_PROFILE_BALANCED: - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; break; case PLATFORM_PROFILE_QUIET: - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; break; case PLATFORM_PROFILE_LOW_POWER: - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; break; default: return -EOPNOTSUPP; } - status = WMI_gaming_execute_u64( - ACER_WMID_SET_GAMING_MISC_SETTING_METHODID, tp, NULL); - - if (ACPI_FAILURE(status)) - return -EIO; + err = WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, tp); + if (err) + return err; - if (tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI) + if (tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) last_non_turbo_profile = tp; return 0; @@ -1931,7 +2008,7 @@ static int acer_platform_profile_setup(struct platform_device *device) /* Set default non-turbo profile */ last_non_turbo_profile = - ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; } return 0; } @@ -1946,12 +2023,10 @@ static int acer_thermal_profile_change(void) u8 current_tp; int tp, err; u64 on_AC; - acpi_status status; - - err = ec_read(ACER_PREDATOR_V4_THERMAL_PROFILE_EC_OFFSET, - ¤t_tp); - if (err < 0) + err = WMID_gaming_get_misc_setting(ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, + ¤t_tp); + if (err) return err; /* Check power source */ @@ -1962,54 +2037,52 @@ static int acer_thermal_profile_change(void) switch (current_tp) { case ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO: if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; else tp = last_non_turbo_profile; break; case ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE: if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; break; case ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED: if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; break; case ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET: if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; break; case ACER_PREDATOR_V4_THERMAL_PROFILE_ECO: if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI; + tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; break; default: return -EOPNOTSUPP; } - status = WMI_gaming_execute_u64( - ACER_WMID_SET_GAMING_MISC_SETTING_METHODID, tp, NULL); - - if (ACPI_FAILURE(status)) - return -EIO; + err = WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, tp); + if (err) + return err; /* Store non-turbo profile for turbo mode toggle*/ - if (tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO_WMI) + if (tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) last_non_turbo_profile = tp; platform_profile_notify(&platform_profile_handler); From patchwork Mon Jan 13 13:14:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hridesh MG X-Patchwork-Id: 13937339 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 9E06A239799; Mon, 13 Jan 2025 13:14:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774071; cv=none; b=ggY/2NllfH7ojMGdohF2o1uhookRcONFbkiqXmIb1+OAo4RPBNdzQqF1NHWHlhHDMrD4KN9ECdYq/0rDuiVnRQF+/HVaoH+CzQB8HMlakhMmxZUdvfH3ChqKPRdnv3Ocx6JwCqeYKwIj/xaeopSuT7I2LEGgI1QU8yT/Zorn2cA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774071; c=relaxed/simple; bh=/2PZqZ2Q1Ex2bCSurEz+J06diXlNfkvXCvYLzS+lnBI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dLdul7TDigl/a1XMFPuD7XljIpWTSMF/GpdLN14xdHOsYIzdajPaJcNmDHjvLi0VK0yybT3YoAmvg1iH3BE0kA4z+5w8g2+QiThIj+/7w9FYi2ytcjgaM3iHMt/g5MccAJSpD4mbwDKPtk4bV/etiosUYUjKdtxL2dlM49Sj3bM= 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=BjhAZGz8; arc=none smtp.client-ip=209.85.214.177 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="BjhAZGz8" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2165448243fso87744575ad.1; Mon, 13 Jan 2025 05:14:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736774069; x=1737378869; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XFH01bfsE3REKuhcMcn2EtahAaVgk7Obm1EnzRjK+hE=; b=BjhAZGz8Dq0c8SyO5sWVFaR/De8sZCw5Jvp5qDvc8Z8B/efXO2KbjdxQAWWexEkiPg tpv6W5uIN4iZ81adk8ioek748jFk1SMSnHkqJiZjJzMfUJ4pcy/B5Fo+L0IhkeruSBZB gLBuzYXP20uthW1e2UFNlzSzftwwS9crj+sWSclrKxd67iSL8OWHEQB84GgeC7/9rECj IYfsEdQnmDAGP8Y/pLfYwYvEmCvdvM9uQP8xn55eH6QJvJhSR2tz8hPRRYDPQjGgRf4c Dpu5NPF2K5Uw3YnqYrkR+SQyOjWkXx4yUVCg5RpsDOsyVi3GuW5FHV8x5or/eeG1/9Pl DdKQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736774069; x=1737378869; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XFH01bfsE3REKuhcMcn2EtahAaVgk7Obm1EnzRjK+hE=; b=XkuJC0LB/eqzU8cl4w2sSHiBL72JpEjT7wj63AwyXcQX9B5SG8xr/LVvYwZwsD5C0Z DkbPySt5FXsIHyyTdHgIBZxORBvTD+4F2MGnZQS9+VvSfLInEEwt3p3dq4wB6OVVHlxu qzvoqE2R2F7F6PJXIUpJAKf2fzpm0nJ60pX+REEf470q7dIRZKfQi6h4C9UxXIuNqsN9 oK6BEhcUOeI7FDtw4iOj+pSBDPxJtCOPUIlFagTi53tOxbtbDhauqwujxqJ6GvTl4zm+ LWDO+Tn2jYyUwXSUMJUJnM29Q/aqopvoPVwSRipsIlznz0tQFT8NA60mOoQLfQJHunDv cBFA== X-Forwarded-Encrypted: i=1; AJvYcCVs2uliq7MrkahpgSx9akDcWssy569WcqRdFEFOsNWEOAZ6BN/pxYY5OrrA2uLZ2S631Ua8seDB55YABOU=@vger.kernel.org X-Gm-Message-State: AOJu0YyDmDB6F1JjaUd32J9NWJjI4gZhqt6Y02h632NsANBQjl2c3aOD SFdrLrVsoid8uLBB+tjpTauREB0VlQFgAoCPrRPUhO9/jJVBriI5AV3Zr490 X-Gm-Gg: ASbGncufW13m0Le19Ma/Mtox+tFoG774iG2cI2m1Er4jU4vQfQDoFamwLphWKoGvMGf +Njqbgg0zfwW9xyROX2glIITmTd6IeBMgom+e3VBV8QUu+4dehXMHEmZPHtwq41Bj/3r3XdW0zD cn+XhQamNT3k662H3lo1Vapa0QGk6iuorIeBcrn0o9pwrZijTktycin+aoWR4tpZ8XzdkUo1Nl7 ITLtMtC8uEvCizHR68gJ46+6gYOlQvHzG7nOwFbaSFZSDdXvzsZ5NviN/2Axg== X-Google-Smtp-Source: AGHT+IF4pi2dyKDAhIfB4pni06a1bcUMYyIlFxpKUUJDJrDHkodnTIKACqseKfRP18SLAqBfQb9efw== X-Received: by 2002:a05:6a21:3286:b0:1e1:ce7d:c0cc with SMTP id adf61e73a8af0-1e88d39caaamr35137589637.38.1736774067207; Mon, 13 Jan 2025 05:14:27 -0800 (PST) Received: from [10.113.16.67] ([117.193.77.254]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31840e93absm6961209a12.20.2025.01.13.05.14.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 05:14:26 -0800 (PST) From: Hridesh MG Date: Mon, 13 Jan 2025 18:44:10 +0530 Subject: [PATCH v4 2/5] platform/x86: acer-wmi: use new helper function for setting overclocks Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250113-platform_profile-v4-2-23be0dff19f1@gmail.com> References: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> In-Reply-To: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> To: Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Armin Wolf , Kurt Borja Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Shuah Khan , Hridesh MG X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1736774055; l=2397; i=hridesh699@gmail.com; s=20241114; h=from:subject:message-id; bh=/2PZqZ2Q1Ex2bCSurEz+J06diXlNfkvXCvYLzS+lnBI=; b=vZZyGAKAd+jbsUttz/TQrBeGlIFTUuMcuyltbmPbtaPks+QvipRnG6uo5i+CY2bBPTTk5OXwx FWIMa5+d6LVACIS8F2r5tiUbHIROuLRkkBRCblgOdTFEZmsdiMMxw80 X-Developer-Key: i=hridesh699@gmail.com; a=ed25519; pk=otVQutD5ZTsEpajsGv/haM3pQj0yofkuYrdNcaX5AUE= Migrate the OC handling in acer_toggle_turbo() to the new helper function for issuing the SetGamingMiscSetting WMI call. Reviewed-by: Kurt Borja Signed-off-by: Hridesh MG --- drivers/platform/x86/acer-wmi.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 97eabb0ec42781a27e6a00ce0df4c8a815c1b817..f662e3740408f70e1e921a90fe75ce441fd239d0 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -119,7 +119,14 @@ enum acer_wmi_predator_v4_sensor_id { ACER_WMID_SENSOR_GPU_TEMPERATURE = 0x0A, }; +enum acer_wmi_predator_v4_oc { + ACER_WMID_OC_NORMAL = 0x0000, + ACER_WMID_OC_TURBO = 0x0002, +}; + enum acer_wmi_gaming_misc_setting { + ACER_WMID_MISC_SETTING_OC_1 = 0x0005, + ACER_WMID_MISC_SETTING_OC_2 = 0x0007, ACER_WMID_MISC_SETTING_PLATFORM_PROFILE = 0x000B, }; @@ -1530,9 +1537,6 @@ static acpi_status WMID_gaming_set_u64(u64 value, u32 cap) case ACER_CAP_TURBO_FAN: method_id = ACER_WMID_SET_GAMING_FAN_BEHAVIOR; break; - case ACER_CAP_TURBO_OC: - method_id = ACER_WMID_SET_GAMING_MISC_SETTING_METHODID; - break; default: return AE_BAD_PARAMETER; } @@ -1891,8 +1895,12 @@ static int acer_toggle_turbo(void) WMID_gaming_set_fan_mode(0x1); /* Set OC to normal */ - WMID_gaming_set_u64(0x5, ACER_CAP_TURBO_OC); - WMID_gaming_set_u64(0x7, ACER_CAP_TURBO_OC); + if (has_cap(ACER_CAP_TURBO_OC)) { + WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_OC_1, + ACER_WMID_OC_NORMAL); + WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_OC_2, + ACER_WMID_OC_NORMAL); + } } else { /* Turn on turbo led */ WMID_gaming_set_u64(0x10001, ACER_CAP_TURBO_LED); @@ -1901,8 +1909,12 @@ static int acer_toggle_turbo(void) WMID_gaming_set_fan_mode(0x2); /* Set OC to turbo mode */ - WMID_gaming_set_u64(0x205, ACER_CAP_TURBO_OC); - WMID_gaming_set_u64(0x207, ACER_CAP_TURBO_OC); + if (has_cap(ACER_CAP_TURBO_OC)) { + WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_OC_1, + ACER_WMID_OC_TURBO); + WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_OC_2, + ACER_WMID_OC_TURBO); + } } return turbo_led_state; } From patchwork Mon Jan 13 13:14:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hridesh MG X-Patchwork-Id: 13937340 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 2E53723A577; Mon, 13 Jan 2025 13:14:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774074; cv=none; b=MG9rSw16FDiElY6+P86gx39qwlzkH07Zdm8YO3swtfFYLGkvXitns2Fc8kthxXXEQ8DWHYIkNEKjHQ7S7b1cOoIt8JzAu4a2a+FP967XThlebldtjBbo1wFDCHvzCwNFwFlLsXrtSyrLQ5+lLJvmw9vGjoYSUQK8G8tUOpeuEbQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774074; c=relaxed/simple; bh=CUcKZGbJ60x3isr5m74jbYJ2wftVQa/D6dx5Db29T1I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=X2aX5lZcA4OBtvvJZQB+QiDtsH3ITg2hL86gzm0HBzt6CDtqcX0uEF/gk536ts3lzqShImCWtj6AqNHOZ9FAeH6kSBuuUmHTxqd9sbsX81bWUQbTj1cpmPfP7xXvYX0V+cSR9LIovVW/BEaVwEOkQLmWbt9z1rkNI4bsTJuFExo= 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=kSIB3kof; arc=none smtp.client-ip=209.85.214.173 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="kSIB3kof" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2165448243fso87747185ad.1; Mon, 13 Jan 2025 05:14:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736774072; x=1737378872; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=tdx58RbkE7UWGw0LJBrSEiuZu1+StplOv00uJ8AcIEE=; b=kSIB3kofLLA9cmBhacldqhFZv0H8DGQcvZZcMwwTg0w3BuTQ9GoeRm5g4vdLpTs9T0 kSUgUXsDhS4L0G9pXdf1wwUEctoTq8miBGax+tIkRzSCfNUv942yGqfJ8uSMYxFnN/WV 6MfWl+cNtZBPKHKpyffqRvbQyyu4oD63XiV1BdR0s1vwF7nsQMQrMMoBFhy2YpGVwaVZ exk8mwLKQmMAIVMe4fRBO8HoLukQh+O/vp2dl1WNZHzmJMuTLVyCELcOCu9pfEi6Q9Tt 0sq4XBBrkgApy/zpgjF5nJuApUq2FUwx5/QpXimiWJ84Wu/oNh70CJBS1RCmIHMsFszi Qckw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736774072; x=1737378872; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tdx58RbkE7UWGw0LJBrSEiuZu1+StplOv00uJ8AcIEE=; b=WNI3T98PbkXmBoC54oeMNTiRH+5mpfnOv5JjwhWEsY/D3hl1JNtXW/ogz4/Bvly66L TDtDaveCqsI9h4/UQKgk6URmKjiSldozcAoiT4rArXBU0hs2DGqwYW34QWn5v/3M1/O5 DBLQ7vizWpAd8vIRYnvNSlCWPRNKbwCd8yRHW4XUBzWCYojS/FEIIUL7yDECwR5AQot6 NoSF8YtbhSseasj9N6GC77f7A/zZ0A/4uTcEQCAsdT/BuQ96tc3MHtFDZ4MvOeK8Nm9e /roUgM8ci7a/CO/8iDE+LxMbc+YPLszWwS1lV9m3SNJUQluOEuKazOXGGuqy/kMAHcd2 w0xg== X-Forwarded-Encrypted: i=1; AJvYcCUIHIwhz4paxIjJaZO158Zj9WGdy3VOuPcnv5GhpYaMJenLS/vO7n60u90xfqhOLlY4YQ2Fjt2KoN+slhg=@vger.kernel.org X-Gm-Message-State: AOJu0YytmhHIvTptWL52uKUQyCDVqvF/NUdW5fAFefLQPm0LTxnlnTtw e5eEaP/DQLvyfmsXoyUaLN7C1hYPj+D6F02MhMBmYQ3VdK/+b/6WKtauIXC8 X-Gm-Gg: ASbGncs55gOebtpv7GHAGW+hWY0n6S1kxz0+1Pxm2qabwm4VoF0ZlXh9mO4SrnN8ENy FM3P7MTeHmBCQy2FUMI2eU/U6V8KesCzrJxMf4e4MhkrG0PC1+MXBJNezyvxnSmbuRXIqSEC75b z2w5NacWBU/bND/+jzfJ/efs4/wlKNs439ZUkXiJBE3CBIUstLg17AkUaTM/sPonhmCpC8rEXbh uJnoiOguQqPIojaOSxdVGs4nBfubluGeZCq3/hRMhuLGifW5CA+lua7cRekpA== X-Google-Smtp-Source: AGHT+IGEZ3F1q1aROfxsG+xQZr4KKu+Wt5nnx4sy8ZKLupVcsA6ZJBTW4f5BZBlauV6Bt+/xy9N5IQ== X-Received: by 2002:a05:6a20:2594:b0:1e4:8fdd:8c77 with SMTP id adf61e73a8af0-1e88d13b502mr35724199637.8.1736774070722; Mon, 13 Jan 2025 05:14:30 -0800 (PST) Received: from [10.113.16.67] ([117.193.77.254]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31840e93absm6961209a12.20.2025.01.13.05.14.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 05:14:30 -0800 (PST) From: Hridesh MG Date: Mon, 13 Jan 2025 18:44:11 +0530 Subject: [PATCH v4 3/5] platform/x86: acer-wmi: simplify platform profile cycling Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250113-platform_profile-v4-3-23be0dff19f1@gmail.com> References: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> In-Reply-To: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> To: Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Armin Wolf , Kurt Borja Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Shuah Khan , Hridesh MG X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1736774055; l=3940; i=hridesh699@gmail.com; s=20241114; h=from:subject:message-id; bh=CUcKZGbJ60x3isr5m74jbYJ2wftVQa/D6dx5Db29T1I=; b=HhGwKOLJnMpa/waivnbwNNVVMw2fSROSl0OL/2Bd3kFMwuSou8gl4mE5Is7ouBcnDhrIzoCu/ CqggarbWNa3D5SFgR03bL2PAVEmsEQiyUN837/8tNLaXpqbUfdCVUbn X-Developer-Key: i=hridesh699@gmail.com; a=ed25519; pk=otVQutD5ZTsEpajsGv/haM3pQj0yofkuYrdNcaX5AUE= Make use of platform_profile_cycle() to simplify the logic used for cycling through the different platform profiles. Also remove the unnecessary handling for AC power, as the hardware accepts different profiles regardless of whether AC is plugged in. Link: https://lore.kernel.org/platform-driver-x86/20e3ac66-b040-49a9-ab00-0adcfdaed2ff@gmx.de/ Signed-off-by: Hridesh MG Reviewed-by: Kurt Borja --- drivers/platform/x86/acer-wmi.c | 78 ++++++++++------------------------------- 1 file changed, 19 insertions(+), 59 deletions(-) diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index f662e3740408f70e1e921a90fe75ce441fd239d0..88416c37eca0af2099b0c8d91b38912a4e5d108f 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -2028,76 +2028,36 @@ static int acer_platform_profile_setup(struct platform_device *device) static int acer_thermal_profile_change(void) { /* - * This mode key can rotate each mode or toggle turbo mode. - * On battery, only ECO and BALANCED mode are available. + * This mode key will either cycle through each mode or toggle the turbo profile. */ if (quirks->predator_v4) { u8 current_tp; - int tp, err; - u64 on_AC; + int err, tp; - err = WMID_gaming_get_misc_setting(ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, - ¤t_tp); - if (err) - return err; - - /* Check power source */ - err = WMID_gaming_get_sys_info(ACER_WMID_CMD_GET_PREDATOR_V4_BAT_STATUS, &on_AC); - if (err < 0) - return err; + if (cycle_gaming_thermal_profile) { + platform_profile_cycle(); + } else { + err = WMID_gaming_get_misc_setting( + ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, ¤t_tp); + if (err) + return err; - switch (current_tp) { - case ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO: - if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; - else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; - else + if (current_tp == ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) tp = last_non_turbo_profile; - break; - case ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE: - if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; - else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; - break; - case ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED: - if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; - else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; - else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; - break; - case ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET: - if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; - else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; - else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; - break; - case ACER_PREDATOR_V4_THERMAL_PROFILE_ECO: - if (!on_AC) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; - else if (cycle_gaming_thermal_profile) - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; else tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; - break; - default: - return -EOPNOTSUPP; - } - err = WMID_gaming_set_misc_setting(ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, tp); - if (err) - return err; + err = WMID_gaming_set_misc_setting( + ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, tp); + if (err) + return err; - /* Store non-turbo profile for turbo mode toggle*/ - if (tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) - last_non_turbo_profile = tp; + /* Store last profile for toggle */ + if (current_tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) + last_non_turbo_profile = current_tp; - platform_profile_notify(&platform_profile_handler); + platform_profile_notify(&platform_profile_handler); + } } return 0; From patchwork Mon Jan 13 13:14:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hridesh MG X-Patchwork-Id: 13937341 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 5943723A58E; Mon, 13 Jan 2025 13:14:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774076; cv=none; b=bQcjK5PrTKhvVeT9XHBFkdXXZi1qYIkyb74Fclk90KkVoNp3qcch37RWhGLsImBW8cAo24FjIUOc9s9OxkG+ZrELW2MAqPwKEOneD52WZ62q0BsMVB5GmzOWhlK+tJN03tTpSob/5gTYciTGBQZ9SY7bCZYuXLu9JtbR45irrKw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774076; c=relaxed/simple; bh=9gOtIFNC+9p0devArM1OIQgXPradQhZJkE2B9DNLXEM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KVjIrJAEX1jbpr7wIIuOt1dCy7Y+QahQcNsDKrLtMAxzhdRvebhTsVYDxrnVJ+jTuVMAtJVn2vOqmZgGVnV9nfppWGqzHnK7fZ4g/iAIr14mZvKB0A+pObi4effZuljbgyXNlFhHPGUOs3gM5EPWjWWgUm9D24ptd5laWTADeh0= 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=HinWtXB6; arc=none smtp.client-ip=209.85.214.182 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="HinWtXB6" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2161eb94cceso50279655ad.2; Mon, 13 Jan 2025 05:14:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736774074; x=1737378874; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0KjjxCDGj5y3C+fSOgT4oOkpbJF7wzDOY1kUuqtfuxk=; b=HinWtXB6HCoLvRQ8zsUwJD4pKMG420Y2sTFJk/o9YI11aslGNrF0+uzRLGWXP6suax phm0x3SpCo8qmTJsCVxSscMWROLhh17v5Bx46uDBItsbsKcT02d1LajlHrORK/AJfKzV /t5tcCoCQJUxG/AOCzXjyp1aXhMXx6jz+WPtKxo16KV5Dj9NnEBJTCdHuCSL5pDRX5ee jPouCiteQf+F1MCpHXLyw2Hm17hNA0EDs+GBcQKvod2wi6It+14GUWgSBN2igiytRsX7 64wVrurb8n+ulPVtDGrE9bNE3XSBDVGI3rmLGPkLKmw+WkDqhllM96I211sYkojETFJ9 JJmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736774074; x=1737378874; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0KjjxCDGj5y3C+fSOgT4oOkpbJF7wzDOY1kUuqtfuxk=; b=Z8VI4wmWTTwszqgKPFtq/7bymw1qN5EdQdyqbMhc8diRD6ED18hVtWhaaeo+LfQc45 Oy+RCCMKpaHjwARdXDIwzRn1DwpVws6Yvv52h19aCQtsSlZUTDwz0ZPYJB2qwERAabZS xagOJ1NlCJnqvNgEDsrff5sv8VBUqkJgBKEPelBtDDmcnNEBAAVWfb7VgxR14y5Div/D D8z271OtmEZPeh7hmqlmMmPw0s37wujPR8Uhhh74ks3AmTyeYhtrqmz1uhUeTguxC2cf 6vINz9chtAxgq6XW/C40BrIRRe/fh+SeREZMp7qK/JzI6VFH/nghZa115zFRVFGC9tix stGA== X-Forwarded-Encrypted: i=1; AJvYcCUDW42PmFpXOZVQYe4Bq8lwUPls1EJd7d9t43at5iUhgrXy5oIk9DKuqUgmTQW3Vl9fzb9v+gIcDnj3dBA=@vger.kernel.org X-Gm-Message-State: AOJu0YzrDByiP4bLo8viWAGMKqG0J0iEG1aL15TqoajEGhqWrvTAVc5V yfuCUZY9qx5ND1Dd7Alsg5nrO/JAYu+x6eM21rAGn1GTY3to73WUZLwS3ZSG X-Gm-Gg: ASbGncuXcOXPyes+YGDdmzEjxZvg3yzd3fHhoHBBgDcLPVJeoSQc8d9kVE+H8t+js38 dwQw36P6YHhTr40YG8xsw5q1jtDOe2lSnrkRZ+EGDYf8nKJU2oa8N3uBjns7PD+YX3Ez3NMimtz UdM8xspuC9/nMMDFjyda3iSmbWqQlExqlvuTLqjqLEe8fw/8uUPE+SQWfN7C4Rh5gTPlPg61UkO AHttGbFizQrt39Z0SgQlWuOrHgyDOg6S0wEoDe2QJEoMucAtLw+SJPFBdTzdQ== X-Google-Smtp-Source: AGHT+IGLoFo3zIUtaKcfrg+ETQceT+Ur1KNUCw6BlEBI+xxlQek4/Eb9nJzu/3ZPwQ0DP6oCgcCFGg== X-Received: by 2002:a05:6a20:7fa1:b0:1e0:ce11:b0ce with SMTP id adf61e73a8af0-1e88d0a9418mr37681488637.35.1736774074442; Mon, 13 Jan 2025 05:14:34 -0800 (PST) Received: from [10.113.16.67] ([117.193.77.254]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31840e93absm6961209a12.20.2025.01.13.05.14.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 05:14:33 -0800 (PST) From: Hridesh MG Date: Mon, 13 Jan 2025 18:44:12 +0530 Subject: [PATCH v4 4/5] platform/x86: acer-wmi: use an ACPI bitmap to set the platform profile choices Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250113-platform_profile-v4-4-23be0dff19f1@gmail.com> References: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> In-Reply-To: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> To: Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Armin Wolf , Kurt Borja Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Shuah Khan , Hridesh MG X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1736774055; l=5593; i=hridesh699@gmail.com; s=20241114; h=from:subject:message-id; bh=9gOtIFNC+9p0devArM1OIQgXPradQhZJkE2B9DNLXEM=; b=O8nOViNyXF1yZA0VaL39HjMYbJSpAO8BcSw1zPlgWwPwzRCADjz22mkPEasMAbRu7vUy0C4y1 vazr5/iR6eVAn0L5z3YOps0z5280bAqyGgS7ZtCqc+qxchmLIB28XU+ X-Developer-Key: i=hridesh699@gmail.com; a=ed25519; pk=otVQutD5ZTsEpajsGv/haM3pQj0yofkuYrdNcaX5AUE= Currently the choices for the platform profile are hardcoded. There is an ACPI bitmap accessible via WMI that specifies the supported profiles, use this bitmap to dynamically set the choices for the platform profile. Link: https://lore.kernel.org/platform-driver-x86/ecb60ee5-3df7-4d7e-8ebf-8c162b339ade@gmx.de/ Signed-off-by: Hridesh MG Reviewed-by: Kurt Borja --- drivers/platform/x86/acer-wmi.c | 67 ++++++++++++++++++++++++++++++++--------- 1 file changed, 52 insertions(+), 15 deletions(-) diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 88416c37eca0af2099b0c8d91b38912a4e5d108f..37f8c2019925391185e1e0952dac563daf923320 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -33,6 +33,7 @@ #include #include #include +#include MODULE_AUTHOR("Carlos Corbacho"); MODULE_DESCRIPTION("Acer Laptop WMI Extras Driver"); @@ -127,6 +128,7 @@ enum acer_wmi_predator_v4_oc { enum acer_wmi_gaming_misc_setting { ACER_WMID_MISC_SETTING_OC_1 = 0x0005, ACER_WMID_MISC_SETTING_OC_2 = 0x0007, + ACER_WMID_MISC_SETTING_SUPPORTED_PROFILES = 0x000A, ACER_WMID_MISC_SETTING_PLATFORM_PROFILE = 0x000B, }; @@ -766,6 +768,9 @@ static bool platform_profile_support; */ static int last_non_turbo_profile; +/* The most performant supported profile */ +static int acer_predator_v4_max_perf; + enum acer_predator_v4_thermal_profile { ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET = 0x00, ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED = 0x01, @@ -1983,7 +1988,7 @@ acer_predator_v4_platform_profile_set(struct platform_profile_handler *pprof, if (err) return err; - if (tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) + if (tp != acer_predator_v4_max_perf) last_non_turbo_profile = tp; return 0; @@ -1992,6 +1997,7 @@ acer_predator_v4_platform_profile_set(struct platform_profile_handler *pprof, static int acer_platform_profile_setup(struct platform_device *device) { if (quirks->predator_v4) { + unsigned long supported_profiles; int err; platform_profile_handler.name = "acer-wmi"; @@ -2001,16 +2007,46 @@ static int acer_platform_profile_setup(struct platform_device *device) platform_profile_handler.profile_set = acer_predator_v4_platform_profile_set; - set_bit(PLATFORM_PROFILE_PERFORMANCE, - platform_profile_handler.choices); - set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, - platform_profile_handler.choices); - set_bit(PLATFORM_PROFILE_BALANCED, - platform_profile_handler.choices); - set_bit(PLATFORM_PROFILE_QUIET, - platform_profile_handler.choices); - set_bit(PLATFORM_PROFILE_LOW_POWER, - platform_profile_handler.choices); + err = WMID_gaming_get_misc_setting(ACER_WMID_MISC_SETTING_SUPPORTED_PROFILES, + (u8 *)&supported_profiles); + if (err) + return err; + + /* Iterate through supported profiles in order of increasing performance */ + if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_ECO, &supported_profiles)) { + set_bit(PLATFORM_PROFILE_LOW_POWER, + platform_profile_handler.choices); + acer_predator_v4_max_perf = + ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; + } + + if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET, &supported_profiles)) { + set_bit(PLATFORM_PROFILE_QUIET, + platform_profile_handler.choices); + acer_predator_v4_max_perf = + ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; + } + + if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED, &supported_profiles)) { + set_bit(PLATFORM_PROFILE_BALANCED, + platform_profile_handler.choices); + acer_predator_v4_max_perf = + ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; + } + + if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE, &supported_profiles)) { + set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, + platform_profile_handler.choices); + acer_predator_v4_max_perf = + ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; + } + + if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO, &supported_profiles)) { + set_bit(PLATFORM_PROFILE_PERFORMANCE, + platform_profile_handler.choices); + acer_predator_v4_max_perf = + ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; + } err = platform_profile_register(&platform_profile_handler); if (err) @@ -2028,7 +2064,8 @@ static int acer_platform_profile_setup(struct platform_device *device) static int acer_thermal_profile_change(void) { /* - * This mode key will either cycle through each mode or toggle the turbo profile. + * This mode key will either cycle through each mode or toggle the + * most performant profile. */ if (quirks->predator_v4) { u8 current_tp; @@ -2042,10 +2079,10 @@ static int acer_thermal_profile_change(void) if (err) return err; - if (current_tp == ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) + if (current_tp == acer_predator_v4_max_perf) tp = last_non_turbo_profile; else - tp = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; + tp = acer_predator_v4_max_perf; err = WMID_gaming_set_misc_setting( ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, tp); @@ -2053,7 +2090,7 @@ static int acer_thermal_profile_change(void) return err; /* Store last profile for toggle */ - if (current_tp != ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO) + if (current_tp != acer_predator_v4_max_perf) last_non_turbo_profile = current_tp; platform_profile_notify(&platform_profile_handler); From patchwork Mon Jan 13 13:14:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hridesh MG X-Patchwork-Id: 13937342 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (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 477ED23DEA4; Mon, 13 Jan 2025 13:14:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774080; cv=none; b=QcBB3Vd5DdiVJrAmkvMO2cusrQnJvnY5IXLWKkgPUax8HPwDCC6tiYqH9hRYe2Dj0Wko9k2hPlzW59Leddn/AHXxf1G5LQ8nqsA9iU3tYDCs+fyGcRRiWUurlNfX6WHB79y5RyVDyDoPpQM4G+1EX4fVvpRr66/4LS36R+SG9EE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736774080; c=relaxed/simple; bh=y/X7q3uR0Pq8anFoNmm8wvKPTXfmXqNisAvDW4YIwUw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TwmzhdECUMOaU6ieO1T41GqzvPo69cHk5r4vtq74QKaqxHrWgfz2kQsK3Ok99c/x4AQGkyt9g7i3TPYB9Hwh/12miYWBHhQ3+Znr9Ifr0YSsWjjIhdbCGQF+Z/wmkgWlTMMYSl1A6A7MZVh6GCm01z84sMLunxOM/Vh4h+vEpI8= 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=dYYUHB8G; arc=none smtp.client-ip=209.85.214.179 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="dYYUHB8G" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2156e078563so61615555ad.2; Mon, 13 Jan 2025 05:14:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736774078; x=1737378878; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qv4RKzw9CqB7MM0YkUXiTrwn+3MiOkEWaK9H8OetvZA=; b=dYYUHB8GatWmtIHPtepjN38gcKXO1LkT5zE7iRUxRe+CsZY0CYTmtOpS0ojhE+SH4u NK7RIXz3ZSsw8HyzSzJiClDOub1h3rtHKvi3answkZZAJ9x2m4c8N8tw+t5NEHIHsKEE wJp2Lvlrokd++M7Ix3cFDIarJrbz1f1ZZMJQeQKldWcUkSBQRSBDceVrymNbjcSP3jjS agymB6DhhgaItD2/IkxWGff42q1p3Ji3zvku1CWvTKmQDjBgLflJ9DMW26uWUYtBjGEL gtyMSVyVJFTzN8eFwOylYK5ds7jQg0z40idQqvmlTxY0f4JjJzxStToq1uHHUF6y9+6E ruqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736774078; x=1737378878; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qv4RKzw9CqB7MM0YkUXiTrwn+3MiOkEWaK9H8OetvZA=; b=tvbOB6WB9im0JBO2zbTPFFzkcu6+oDWj9MNOG336ukLcycUSmW5ydlDZsdrR6lWv0A U002n34OsSbbw/cWEjoKlOv9sLpgpXTtlLQbqRXzfr9Zu5OrSauLXGNqsfAW9M3e1JHf lb8tMVCvB/qW8Q+kreQT6uKw5KqNlvQYo7ayF1Yj1Kx8tcja/rvCBnlwjb6IsnJw7pv2 8cia7KckS06JdzxDkdeJIZcXy9RUyRLK2SXq+9pwp8nU/Z/y40FGxH+JGB9h/lJWaqsQ Pk3/62SowRtXtzz4fIZSL6KYKfc/7sdZCMnovzOWxIKDOKaXsp6PQ9XmfBAFCcFbRP9G mb8Q== X-Forwarded-Encrypted: i=1; AJvYcCUKkgsBBMAIjoVPTZA1nl9q/T3BmZiFbq4UyVokH7ReBTe+fdiaolIBywSkeU3srlGErTQqQQe6P8Qo+cM=@vger.kernel.org X-Gm-Message-State: AOJu0YwdHOdH4PuMSYxF8QySBKsyiZjh7Pryy6CTqTIT9t80U4DC1R7I tYGYv7BnFb6wAJbkjVZ1zbgbiDP2I5crwwzp1FrkmwqMQMJroScr3hmHdmc3 X-Gm-Gg: ASbGnctaWSsymQjia+FD8JJau/gtqm76XsYaaoTn11P7uW1SETcsMQhFrphUZccrpR3 m078I9+zSTnB5qM+FVTVJlLE8pfpz0aJmYgFxqCahWfIqpkOt28F+xBYe6tOiIQ5DHkjk55C48U dQphuCokX5vOyE3K6sKVrWY1pNrjOvnK+uIHcG4k4tu4Wl3ztePhocRBLZ7ZH6Z/gpd9KvMGeIs rxwbN0fEtAr+DMY0li2lGvCylFivvYJYUhFSggt8x+Eh/82Z1V7S8zV+bsjPg== X-Google-Smtp-Source: AGHT+IHYhUhNqlKYvjm8jihk3Lx2G6OaZV7idRYMQFugBym3ulQTqDGjm2Lzu4pWtcUa1wHah+0ihw== X-Received: by 2002:a05:6a20:394b:b0:1e1:aef4:9ce8 with SMTP id adf61e73a8af0-1e88d2d5ecamr36550313637.28.1736774078058; Mon, 13 Jan 2025 05:14:38 -0800 (PST) Received: from [10.113.16.67] ([117.193.77.254]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31840e93absm6961209a12.20.2025.01.13.05.14.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 05:14:37 -0800 (PST) From: Hridesh MG Date: Mon, 13 Jan 2025 18:44:13 +0530 Subject: [PATCH v4 5/5] platform/x86: acer-wmi: add support for Acer Nitro AN515-58 Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250113-platform_profile-v4-5-23be0dff19f1@gmail.com> References: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> In-Reply-To: <20250113-platform_profile-v4-0-23be0dff19f1@gmail.com> To: Hans de Goede , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Armin Wolf , Kurt Borja Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, Shuah Khan , Hridesh MG X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1736774055; l=981; i=hridesh699@gmail.com; s=20241114; h=from:subject:message-id; bh=y/X7q3uR0Pq8anFoNmm8wvKPTXfmXqNisAvDW4YIwUw=; b=iBRhja9XTJIWXrOh+iZUcd47tnLCiZEWDjToJ2WPW1zuHlQtIo4GuRtp8XNTfwbTYpANrSwjm eNNFclFpLQeDgqvR7ox4QKAuMZVuJxcgZYrzlXTPnQDXgtncVFpi0md X-Developer-Key: i=hridesh699@gmail.com; a=ed25519; pk=otVQutD5ZTsEpajsGv/haM3pQj0yofkuYrdNcaX5AUE= Add predator_v4 quirk for the Acer Nitro AN515-58 to enable fan speed monitoring and platform_profile handling. Signed-off-by: Hridesh MG Reviewed-by: Kurt Borja --- drivers/platform/x86/acer-wmi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index 37f8c2019925391185e1e0952dac563daf923320..04bfa8fe12c2fd9a3c8be8d06f47431f8143d6c9 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -601,6 +601,15 @@ static const struct dmi_system_id acer_quirks[] __initconst = { }, .driver_data = &quirk_acer_travelmate_2490, }, + { + .callback = dmi_matched, + .ident = "Acer Nitro AN515-58", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Nitro AN515-58"), + }, + .driver_data = &quirk_acer_predator_v4, + }, { .callback = dmi_matched, .ident = "Acer Predator PH315-53",