From patchwork Sun Jan 19 20:17:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 13944584 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E96E51DFD84; Sun, 19 Jan 2025 20:17:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737317861; cv=none; b=UMtYTsWPNkUE6VRjmWhmtbe8IUMf+GzWjQjV2o6iCA5qdJ49DZP3MuXBSgQLhOTYmfyi1qFph7nhJRWQz6pGRWoVIZWHXlHoFyMTAz2VxlfvTXOtrrNc+cjcett22ERwpnH6aim7ZkcKFe1U1EjEoDTYSb16ehl3QIM3P01tReA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737317861; c=relaxed/simple; bh=7jM/T02+dbwkm1MsxR4hGSG8Lkbw+FKlMYB8yalbQo0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=jFZCQVkgCksRTNiDMQK/yNXa4wr7RyZu59TBb9yl4j0I9U/TYoCHLQqpFZNQwyHh8uS+ShhxIrclC39+CRL4t3kWq6sMgg8X6OYhBFwW86tvlnZqiHJJrNz+8etl0njqgGqapIaIR+byYZGVLjF7ZXRzBPovwLn0fBqEjVpZvRU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=TzKUlJQJ; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="TzKUlJQJ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1737317851; x=1737922651; i=w_armin@gmx.de; bh=PMhwv8pLMS/7h7x9upv7SpRYjNPc1CWi7y7A4f7nvlo=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=TzKUlJQJoIQtd56KEpxo91APrG0zdTrufUUMHJZsCiLQ7NLNm3mkuDR3WMuiI2rw ZE5VGH9VmmiMNaTEcj9ZT7MBGSBADBFXfyZWucxbuloiKRSgV6IaG5BpiRwE+jA7q eJTyux1CtFeUw5VYWGDtyvYvUyoCMHgqnxMMNA0dQHy2Lvl/YjfM6GbOkb3r2rU/e QpM9nJdaSEFaIu90bVgY0etrmHkH4M6xGCKi7Zei6TinRCf0CNbZxhIMGsRov7rOZ dGtGBVsiztFd+XbZ469QSezOBi8p+fmKNr4df5ehe87oajqUTmd4reIdfnrHr9K8C RFApj0GDS+pLKf2WuQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.fritz.box ([93.202.251.118]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mv31W-1tI4ok3lGy-014kbA; Sun, 19 Jan 2025 21:17:31 +0100 From: Armin Wolf To: farhan.anwar8@gmail.com, rayanmargham4@gmail.com, jlee@suse.com Cc: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, hridesh699@gmail.com Subject: [PATCH 1/2] platform/x86: acer-wmi: Ignore AC events Date: Sun, 19 Jan 2025 21:17:22 +0100 Message-Id: <20250119201723.11102-2-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250119201723.11102-1-W_Armin@gmx.de> References: <20250119201723.11102-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:hTZV00Ar9yHghusgXXddtSBZL82biRRcXwXPjG/j8MEMpK0uehW yOCig9rsyrhNeLqcPpgxGVrA+9sSO66NLlsTiHgSvWq+F85WTURqMH5ZaMZcNwsVLagYEMR gnwQV3cho+4fRgvgvuWL9xpqtwx+8Bn6MWEnsij3yY5BzMw3L8aN5t48us28pofwTp+GodK wwgh7jE3XuOhMMlEmBECA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:S/A86dc8PMc=;Tx4sXrHLi36P+4Hw8jIuRBINKsL UeqaCKq2PM0f0FRpcd0RcTHAeUQFlw5jFZGuPzaLQ0duA1k3q+o9unHQ7q8tyyaK57hEzOGEF gGbhH7dQBuqucv8YI2/sUzY7I2D2wPHc29BZbS3eqqOO6IhuSnZXcRB8ZT4bTkCEBt+l8fEd/ 3/qktuwnVHJ38YbuQ7BAVpa976JqVgIpSQNz/8/WlzLk0TyQuuuF0BA2+TbNvXeqCrGyXxoPH 3CePyp6EMM/cLyyv0gxqUT8cs9r3mupgtQRhvLWDQrFjtGPCY/NZw6De10arijiJY6TbBww3b JNufTosAWMvmE1nImkRofDo+UEWTvyoAc7lpjljH0JhEpbnB1Apyc8kLbNzIGUntusqOBULxU jAeERq3RPLqFNVF3G9ODE05ilaSy4gHD3nH46qmf+VXLbP1LM9aoKJkeK8/qBRKhWJpIEf+e+ EE2Ci9DJS/L/FHkhZ4L83rimaE54stzYdYOnH74T0u5yUgx8mNn00T1J2LswniTMQZTuc9oay xvlAoIe1dKljLvUhakdlW5Gw7eQFgT7uvrkk1r37PTxd3XDoPdgO0/Kbip4Qzv4lS42A6KXKO 3EN57ckfeY2CaR/HO4CZFGzLjFyZ/tkkQ2SoC6dc6QLFsNwmynm+VSQaD8EVmc/ojhkI/8BX9 qHIFGciVm6eSYDr7uvnerdA1unve23iaDOCafQYwFu5nfGzfm5SiVJDM8Fr8HdoNBDLVutBCh WTOmtggWo9l4SS59AFCRJdn/bFNiRFaLMKmhqP8jUZqiI7mBgAWQd9LzL6r8ubQSQdzhRmvbT yzMawwQuep7EewXqxSEQJqsm9lqVh/PaaXLLo+Bv5Ryk1Kf6jJdIQyn0+0SkBzplmq/IE4BHj lF1Ju8b64f3YN/K0WZ2SHJkBml9krBsrlEmnfNYMVQirFP9R2md6F9KqsHuj97+5GX8HVb8hj AyTKKSVvApvV0atPLRWK5ReAOf0AongM2kd8fxAQE1jRnROdPlgdOI/3ZlM718wcJtZmv1YGz 8K5Ju8ObAlg8lx8mUvmYghbI0WOYEXj2L1NgA/rhT0XEsBOd+qJBuzdOT/QD6OFKZslNmPYUY N13kTI935KghNUKViZ07P46Jj1rFMTPqQFqk7on+K0dVnJStoxForvuFTzEwxxuEyU26CXHd0 R0I/diSMbalEPbjmqtsFmQLPXbfiHJ+SoyMIOfXi5lfuPBdvU+241eVE2Uxb/0qw= On the Acer Swift SFG14-41, the events 8 - 1 and 8 - 0 are printed on AC connect/disconnect. Ignore those events to avoid spamming the kernel log with error messages. Reported-by: Farhan Anwar Closes: https://lore.kernel.org/platform-driver-x86/2ffb529d-e7c8-4026-a3b8-120c8e7afec8@gmail.com Tested-by: Rayan Margham Reviewed-by: Ilpo Järvinen Signed-off-by: Armin Wolf --- drivers/platform/x86/acer-wmi.c | 4 ++++ 1 file changed, 4 insertions(+) -- 2.39.5 diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index ae2a7c93ab72..a85c881d1f24 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -104,6 +104,7 @@ enum acer_wmi_event_ids { WMID_HOTKEY_EVENT = 0x1, WMID_ACCEL_OR_KBD_DOCK_EVENT = 0x5, WMID_GAMING_TURBO_KEY_EVENT = 0x7, + WMID_AC_EVENT = 0x8, }; enum acer_wmi_predator_v4_sys_info_command { @@ -2414,6 +2415,9 @@ static void acer_wmi_notify(union acpi_object *obj, void *context) if (return_value.key_num == 0x5 && has_cap(ACER_CAP_PLATFORM_PROFILE)) acer_thermal_profile_change(); break; + case WMID_AC_EVENT: + /* We ignore AC events here */ + break; default: pr_warn("Unknown function number - %d - %d\n", return_value.function, return_value.key_num); From patchwork Sun Jan 19 20:17:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Armin Wolf X-Patchwork-Id: 13944585 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80DDF1DFE0F; Sun, 19 Jan 2025 20:17:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737317864; cv=none; b=IdgJANdoacDtOEHKdYhxQMF1kwKBu4S/kBUFtycr3QJW8KUDR08Kg7tosMIXKc0DeT+sKubMxIwA4FDoC5Ay8otLOdU7hKFvo6VNnMskZbMIqd2lOKH9qs26kkWVTZi13KfjPj3qlisCHK/KSQp+AGD/eo2Qf82OxAyB9cfg+9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737317864; c=relaxed/simple; bh=WZvzCVKETms1uhZ2vhp0+qofxp6mtdZPmP6gv9/mYKI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iaROd1l9vGDmDa8HNET7PxgD6VbhPmIxpMoxHOh8XUOEUam1lNxawY7FKwAoxWJx29URzGhXmdasLSZcva3+Nkq6fqvy8uyWGsepgPrK+iINMlkKuzW+dp7McdbKNfX11JBnZ5fYrl+pGz+LEnlfP4qknO+dp9G1je+q6fOSiiw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de; spf=pass smtp.mailfrom=gmx.de; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b=Lc108/7b; arc=none smtp.client-ip=212.227.15.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.de header.i=w_armin@gmx.de header.b="Lc108/7b" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1737317853; x=1737922653; i=w_armin@gmx.de; bh=Gf1BJyYN2y6x6i4TWAZX0lC2uSECvU/yZn7ll5BmABY=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-Id:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=Lc108/7bHdX8fCKk6/fHwjucWkTp9jprTqzqRKzo2z+Kotr2BTEBGIg7eEFYmsJM 7ZmuwjvoYQczBDKB77kN59i0AVUZR4oMvFCvOjObyBjkGUnQUhUa60Qt0Zj2XlFPr 1w549fxSLgmdCXrFccxGfC5fT4BVJKKcS4KOoJ3nVoL0SWB3qr6cFkfRrMxDzZhT0 VS9LbCp97xKJSLe3XNE9dvd+KCdXVxlnOo7JL0u/zYxzQQVTuyDIO6ZdV4qBFbW9l GAv6bkEGDcVvP93cqca+hL5ZG9Xj29P7fToeterDhAYoBKhwanD3hv4Ol6BHEeFSk DMIjvCpZzgesQcFdng== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from mx-amd-b650.fritz.box ([93.202.251.118]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1McH9i-1sxEZt0cKS-00qFrs; Sun, 19 Jan 2025 21:17:33 +0100 From: Armin Wolf To: farhan.anwar8@gmail.com, rayanmargham4@gmail.com, jlee@suse.com Cc: hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, hridesh699@gmail.com Subject: [PATCH 2/2] platform/x86: acer-wmi: Fix initialization of last_non_turbo_profile Date: Sun, 19 Jan 2025 21:17:23 +0100 Message-Id: <20250119201723.11102-3-W_Armin@gmx.de> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250119201723.11102-1-W_Armin@gmx.de> References: <20250119201723.11102-1-W_Armin@gmx.de> Precedence: bulk X-Mailing-List: platform-driver-x86@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:66J0c/jWZZilogv+zzSNInbqvbIEcdOdKhzYdZq9+b/qjXW8kpU uYb8lySG2cZ0jrVV7slkb7pJpxVGeTc9kf/l82ZJ4QJvIE21drh7e4/HFmSK194CZXZCjAT nSHMhucOtCjG9hib+zfkPsIwy5giWERkSblCk7dsnLB4yIPrIZsOKfzNCo52E/Sww/C97DJ xQz7fBKRbBHV2ykBsQVnw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:8RBkfj6Gahk=;ZK/xyd+cO63hdaGX1UxODBYWI+b lCS+A1XSWukULs9Fi1fATp7NBjfs6ldWqdKenB01rVN4u0yAU0wtPIvQr4/Gs8VqL4lex/Q6C 3qs5OCIQhSlkS9IbdmkFzLfm0HDMr3RCZW9NAmwtEmFjfoZmUBtQ4i1mOfVB/oF/uFCQKj7Dl SVK0swLveIwAiFfKMNljglvCcAyAWsQQbR3DdHzkre+IkleBRvy/xAmQ85CSR5Vr8YRV0Yo1D KBvhAcOKOYswJDuC9XLeQ/2XI1nDVpI3NsI3+EeqXeKt0kkreoCxc79SGQBB9F51MfZ2brSAI ftU+Z8MQ40QZ2YLJYQld3P+/kFOg99xXRxTnkx+WOrv5i1NfTLWYCP8EEYrBYQGClW9eJge2q Z4UG5MNYcX9Tr2qKCxHYD7o44fpBgDBO7L9LA3rMRqY6WUidyGevCOD9aT14X5StoDgpY9qth Cr5SMrhVZ8UxJC+DLRuwHi6LkSBE7IDfhV2HTmRBqssd8PxEnv1onBPgsu5siAV6zobgLMEuc XnVR1Xgf7XmUl2Cpc4VOx3ZpOGhXqaJ24t22NJS1DJCws48AnJkmxQPOQd/P6/4Sja7FOpWzV BXtg91o5Z7O91Jfc0vtG1dhityEv1CbT1DvYHtciTaf+4zSa00mHjXozg9GfkYTI18+XgECaA 3his6b5Q5/HI6HeryKxepKG/2eO61LUFGBXyQjn4gQYDrExlP64DT4YhageDJlNhZ7rlhnS6D cg0QMTSmIdieY7dGpKYabk7g+/M7Ah99Fperhq0As8+MjrPhFJeq4C0nbrWQ28PyE1gs6O9zc S0RzcsPkq4aNzzkEd00BoDrqibM7ywba9IDSnN2Tir+KgkU8nVQCp4RvEnsXkbRjNzSqiRHsG 4mCoxV5oQu9jxENdvtC0VZMKKXe9NjFSkfb3bjY26K6FsLc4V8Am/NXxtgYD+zlnvZvV/X0Fb 00Jx9JoWQufmUx+ybcBTKqKgbybWFgmYTCCTgjimgkZdv3JQISjdF/6TbxCiJljFUmHo9w8U5 zmRYS0yAZONh5pq6/qUoEzc9weWPRnLrYh8U7l8jMJn3BGIM7AklhwX1HJEfajfF5mydBzP7a E5jJnDQMztW0dEedNuJ9jJqAT4TlLEHmlWv6FonWKcgbXC65uSsaSPlJFC39l9TxBzGlCgTIV RxgaumSW2NDh5rAP6cuusboQ/1jduFogqtdunVreFh/6Pn/6eEp5sEoYXv3d7cv4= On machines that do not support the balanced profile the value of last_non_turbo_profile is invalid after initialization which might cause the driver to switch to an unsupported platform profile later. Fix this by only setting last_non_turbo_profile to supported platform profile values. Fixes: 191e21f1a4c3 ("platform/x86: acer-wmi: use an ACPI bitmap to set the platform profile choices") Signed-off-by: Armin Wolf Tested-by: Hridesh MG Reviewed-by: Hridesh MG --- drivers/platform/x86/acer-wmi.c | 41 +++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 15 deletions(-) -- 2.39.5 diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index a85c881d1f24..69336bd778ee 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c @@ -792,7 +792,7 @@ static bool platform_profile_support; * The profile used before turbo mode. This variable is needed for * returning from turbo mode when the mode key is in toggle mode. */ -static int last_non_turbo_profile; +static int last_non_turbo_profile = INT_MIN; /* The most performant supported profile */ static int acer_predator_v4_max_perf; @@ -2034,32 +2034,43 @@ acer_predator_v4_platform_profile_probe(void *drvdata, unsigned long *choices) /* 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, choices); - acer_predator_v4_max_perf = - ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; + acer_predator_v4_max_perf = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; + last_non_turbo_profile = ACER_PREDATOR_V4_THERMAL_PROFILE_ECO; } if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET, &supported_profiles)) { set_bit(PLATFORM_PROFILE_QUIET, choices); - acer_predator_v4_max_perf = - ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; + acer_predator_v4_max_perf = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; + last_non_turbo_profile = ACER_PREDATOR_V4_THERMAL_PROFILE_QUIET; } if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED, &supported_profiles)) { set_bit(PLATFORM_PROFILE_BALANCED, choices); - acer_predator_v4_max_perf = - ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; + acer_predator_v4_max_perf = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; + last_non_turbo_profile = ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; } if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE, &supported_profiles)) { set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, choices); - acer_predator_v4_max_perf = - ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; + acer_predator_v4_max_perf = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; + + /* We only use this profile as a fallback option in case no prior + * profile is supported. + */ + if (last_non_turbo_profile < 0) + last_non_turbo_profile = ACER_PREDATOR_V4_THERMAL_PROFILE_PERFORMANCE; } if (test_bit(ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO, &supported_profiles)) { set_bit(PLATFORM_PROFILE_PERFORMANCE, choices); - acer_predator_v4_max_perf = - ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; + acer_predator_v4_max_perf = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; + + /* We need to handle the hypothetical case where only the turbo profile + * is supported. In this case the turbo toggle will essentially be a + * no-op. + */ + if (last_non_turbo_profile < 0) + last_non_turbo_profile = ACER_PREDATOR_V4_THERMAL_PROFILE_TURBO; } return 0; @@ -2080,10 +2091,6 @@ static int acer_platform_profile_setup(struct platform_device *device) return PTR_ERR(platform_profile_device); platform_profile_support = true; - - /* Set default non-turbo profile */ - last_non_turbo_profile = - ACER_PREDATOR_V4_THERMAL_PROFILE_BALANCED; } return 0; } @@ -2101,6 +2108,10 @@ static int acer_thermal_profile_change(void) if (cycle_gaming_thermal_profile) { platform_profile_cycle(); } else { + /* Do nothing if no suitable platform profiles where found */ + if (last_non_turbo_profile < 0) + return 0; + err = WMID_gaming_get_misc_setting( ACER_WMID_MISC_SETTING_PLATFORM_PROFILE, ¤t_tp); if (err)