diff mbox series

[v4,5/5] platform/x86: acer-wmi: Ignore AC events

Message ID 20241210001657.3362-6-W_Armin@gmx.de (mailing list archive)
State New
Headers show
Series acer-wmi: Various improvements | expand

Commit Message

Armin Wolf Dec. 10, 2024, 12:16 a.m. UTC
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 <farhan.anwar8@gmail.com>
Closes: https://lore.kernel.org/platform-driver-x86/2ffb529d-e7c8-4026-a3b8-120c8e7afec8@gmail.com
Tested-by: Rayan Margham <rayanmargham4@gmail.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
---
 drivers/platform/x86/acer-wmi.c | 4 ++++
 1 file changed, 4 insertions(+)

--
2.39.5

Comments

Kurt Borja Dec. 10, 2024, 2:16 a.m. UTC | #1
On Tue, Dec 10, 2024 at 01:16:57AM +0100, Armin Wolf wrote:
> 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.

I noticed acer_thermal_profile_change() behavior changed whether the
laptop was on AC or not. Maybe users expect some kind of behavior around
thermal profiles with this event? Like switching to low-power when not
on AC or something like that.

~ Kurt

> 
> Reported-by: Farhan Anwar <farhan.anwar8@gmail.com>
> Closes: https://lore.kernel.org/platform-driver-x86/2ffb529d-e7c8-4026-a3b8-120c8e7afec8@gmail.com
> Tested-by: Rayan Margham <rayanmargham4@gmail.com>
> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
> Signed-off-by: Armin Wolf <W_Armin@gmx.de>
> ---
>  drivers/platform/x86/acer-wmi.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
> index aad8eb0ddae5..ef26ec8d90ea 100644
> --- a/drivers/platform/x86/acer-wmi.c
> +++ b/drivers/platform/x86/acer-wmi.c
> @@ -99,6 +99,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 {
> @@ -2304,6 +2305,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);
> --
> 2.39.5
>
Armin Wolf Dec. 10, 2024, 4:06 a.m. UTC | #2
Am 10.12.24 um 03:16 schrieb Kurt Borja:

> On Tue, Dec 10, 2024 at 01:16:57AM +0100, Armin Wolf wrote:
>> 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.
> I noticed acer_thermal_profile_change() behavior changed whether the
> laptop was on AC or not. Maybe users expect some kind of behavior around
> thermal profiles with this event? Like switching to low-power when not
> on AC or something like that.
>
> ~ Kurt

Good question, i will ask the person with the Acer notebook to test if the platform
profile changes automatically when switching to AC.

The other however patches can be taken regardless of this patch.

Thanks,
Armin Wolf

>> Reported-by: Farhan Anwar <farhan.anwar8@gmail.com>
>> Closes: https://lore.kernel.org/platform-driver-x86/2ffb529d-e7c8-4026-a3b8-120c8e7afec8@gmail.com
>> Tested-by: Rayan Margham <rayanmargham4@gmail.com>
>> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
>> Signed-off-by: Armin Wolf <W_Armin@gmx.de>
>> ---
>>   drivers/platform/x86/acer-wmi.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
>> index aad8eb0ddae5..ef26ec8d90ea 100644
>> --- a/drivers/platform/x86/acer-wmi.c
>> +++ b/drivers/platform/x86/acer-wmi.c
>> @@ -99,6 +99,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 {
>> @@ -2304,6 +2305,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);
>> --
>> 2.39.5
>>
Ilpo Järvinen Dec. 10, 2024, 2:43 p.m. UTC | #3
On Tue, 10 Dec 2024, Armin Wolf wrote:

> Am 10.12.24 um 03:16 schrieb Kurt Borja:
> 
> > On Tue, Dec 10, 2024 at 01:16:57AM +0100, Armin Wolf wrote:
> > > 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.
> > I noticed acer_thermal_profile_change() behavior changed whether the
> > laptop was on AC or not. Maybe users expect some kind of behavior around
> > thermal profiles with this event? Like switching to low-power when not
> > on AC or something like that.
> > 
> > ~ Kurt
> 
> Good question, i will ask the person with the Acer notebook to test if the
> platform
> profile changes automatically when switching to AC.
> 
> The other however patches can be taken regardless of this patch.

I took patches now 1-4 but left the 5th for now.
David Wang Dec. 14, 2024, 10:45 a.m. UTC | #4
May I suggest pr_info() this WMID_AC_EVENT event, there were discussions
about possible unstable adapter cord causing flood of events 8-0/1. The
logs may help identify the cause.


Thanks
David
diff mbox series

Patch

diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index aad8eb0ddae5..ef26ec8d90ea 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -99,6 +99,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 {
@@ -2304,6 +2305,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);