[PATCH v2] platform/x86: asus-wmi: log thermal notification event

Jonathan Grant posted 1 patch 3 weeks ago
There is a newer version of this series
drivers/platform/x86/asus-wmi.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
[PATCH v2] platform/x86: asus-wmi: log thermal notification event
Posted by Jonathan Grant 3 weeks ago
From e110b7489b320588a7d334bf0a4e20e3e25784e7 Mon Sep 17 00:00:00 2001
From: Jonathan Grant <jg@jguk.org>
Date: Sat, 14 Mar 2026 02:11:09 +0000
Subject: [PATCH] platform/x86: asus-wmi: log thermal notification event

Print a diagnostic message when the ASUS WMI interface receives
event 0x6d. This event was observed shortly before thermal
shutdown on an ASUS N56VB under heavy system load. The message
helps diagnose unexpected thermal power-offs.

Signed-off-by: Jonathan Grant <jg@jguk.org>
---
v2:
 - follow kernel patch guidelines
 - rename event to NOTIFY_THERMAL
 - document that event 0x6d was observed before thermal shutdown
   on ASUS N56VB (BIOS WMI version 7.9, SFUN value 0x6a0877)
 - improve commit message description
 - remove stray blank line

 drivers/platform/x86/asus-wmi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 7c0915e097ba..6ab3886ad28f 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -70,6 +70,7 @@ module_param(fnlock_default, bool, 0444);
 #define NOTIFY_KBD_TTP			0xae
 #define NOTIFY_LID_FLIP			0xfa
 #define NOTIFY_LID_FLIP_ROG		0xbd
+#define NOTIFY_THERMAL			0x6d
 
 #define ASUS_WMI_FNLOCK_BIOS_DISABLED	BIT(0)
 
@@ -4590,7 +4591,6 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
 		if (asus->throttle_thermal_policy_dev)
 			platform_profile_cycle();
 		return;
-
 	}
 
 	if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle)
@@ -4598,7 +4598,10 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
 
 	if (!sparse_keymap_report_event(asus->inputdev, code,
 					key_value, autorelease))
-		pr_info("Unknown key code 0x%x\n", code);
+		if (code == NOTIFY_THERMAL)
+			pr_info("Thermal state change\n");
+		else
+			pr_info("Unknown key code 0x%x\n", code);
 }
 
 static void asus_wmi_notify(union acpi_object *obj, void *context)
-- 
2.43.0
Re: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
Posted by kernel test robot 2 weeks, 6 days ago
Hi Jonathan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on amd-pstate/linux-next]
[also build test WARNING on amd-pstate/bleeding-edge linus/master v7.0-rc4 next-20260317]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jonathan-Grant/platform-x86-asus-wmi-log-thermal-notification-event/20260316-204950
base:   https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git linux-next
patch link:    https://lore.kernel.org/r/94dbe1e1-d706-47aa-abf5-f5d76aacf017%40jguk.org
patch subject: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20260318/202603180450.8OGDU2sP-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260318/202603180450.8OGDU2sP-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603180450.8OGDU2sP-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/platform/x86/asus-wmi.c: In function 'asus_wmi_handle_event_code':
>> drivers/platform/x86/asus-wmi.c:4599:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
    4599 |         if (!sparse_keymap_report_event(asus->inputdev, code,
         |            ^


vim +/else +4599 drivers/platform/x86/asus-wmi.c

8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4538  
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4539  static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4540  {
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4541  	enum led_brightness led_value;
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4542  	unsigned int key_value = 1;
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4543  	bool autorelease = 1;
3d7b165539d417 drivers/platform/x86/eeepc-wmi.c Yong Wang           2010-04-11  4544  
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4545  	if (asus->driver->key_filter) {
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4546  		asus->driver->key_filter(asus->driver, &code, &key_value,
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4547  					 &autorelease);
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4548  		if (code == ASUS_WMI_KEY_IGNORE)
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4549  			return;
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4550  	}
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4551  
a5b92be2482e5f drivers/platform/x86/asus-wmi.c  Hans de Goede       2023-10-17  4552  	if (acpi_video_get_backlight_type() == acpi_backlight_vendor &&
a5b92be2482e5f drivers/platform/x86/asus-wmi.c  Hans de Goede       2023-10-17  4553  	    code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNDOWN_MAX) {
a5b92be2482e5f drivers/platform/x86/asus-wmi.c  Hans de Goede       2023-10-17  4554  		asus_wmi_backlight_notify(asus, code);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4555  		return;
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03  4556  	}
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03  4557  
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4558  	scoped_guard(spinlock_irqsave, &asus_ref.lock)
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4559  		led_value = asus->kbd_led_wk;
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4560  
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4561  	if (code == NOTIFY_KBD_BRTUP) {
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4562  		kbd_led_set_by_kbd(asus, led_value + 1);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4563  		return;
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4564  	}
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4565  	if (code == NOTIFY_KBD_BRTDWN) {
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4566  		kbd_led_set_by_kbd(asus, led_value - 1);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4567  		return;
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4568  	}
ed99d29b2b1562 drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4569  	if (code == NOTIFY_KBD_BRTTOGGLE) {
7525566abd360c drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4570  		if (led_value >= ASUS_EV_MAX_BRIGHTNESS)
29f6eb533c3be9 drivers/platform/x86/asus-wmi.c  Jian-Hong Pan       2018-10-22  4571  			kbd_led_set_by_kbd(asus, 0);
ed99d29b2b1562 drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4572  		else
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4573  			kbd_led_set_by_kbd(asus, led_value + 1);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4574  		return;
ed99d29b2b1562 drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4575  	}
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4576  
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4577  	if (code == NOTIFY_FNLOCK_TOGGLE) {
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4578  		asus->fnlock_locked = !asus->fnlock_locked;
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4579  		asus_wmi_fnlock_update(asus);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4580  		return;
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4581  	}
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4582  
1ea0d3b46798af drivers/platform/x86/asus-wmi.c  Hans de Goede       2022-08-24  4583  	if (code == asus->tablet_switch_event_code) {
1ea0d3b46798af drivers/platform/x86/asus-wmi.c  Hans de Goede       2022-08-24  4584  		asus_wmi_tablet_mode_get_state(asus);
e397c3c460bf38 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-13  4585  		return;
e397c3c460bf38 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-13  4586  	}
e397c3c460bf38 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-13  4587  
601eb4c8e15002 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-26  4588  	if (code == NOTIFY_KBD_FBM || code == NOTIFY_KBD_TTP) {
601eb4c8e15002 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-26  4589  		if (asus->fan_boost_mode_available)
9af93db9e140a4 drivers/platform/x86/asus-wmi.c  Daniel Drake        2019-07-17  4590  			fan_boost_mode_switch_next(asus);
bcbfcebda2cbc6 drivers/platform/x86/asus-wmi.c  Mohamed Ghanmi      2024-06-09  4591  		if (asus->throttle_thermal_policy_dev)
b0955ce555478e drivers/platform/x86/asus-wmi.c  Armin Wolf          2024-11-07  4592  			platform_profile_cycle();
2daa86e78c494d drivers/platform/x86/asus-wmi.c  Leonid Maksymchuk   2019-12-15  4593  		return;
2daa86e78c494d drivers/platform/x86/asus-wmi.c  Leonid Maksymchuk   2019-12-15  4594  	}
2daa86e78c494d drivers/platform/x86/asus-wmi.c  Leonid Maksymchuk   2019-12-15  4595  
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4596  	if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle)
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4597  		return;
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03  4598  
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03 @4599  	if (!sparse_keymap_report_event(asus->inputdev, code,
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4600  					key_value, autorelease))
2cf4f7ebe37ac2 drivers/platform/x86/asus-wmi.c  Jonathan Grant      2026-03-16  4601  		if (code == NOTIFY_THERMAL)
2cf4f7ebe37ac2 drivers/platform/x86/asus-wmi.c  Jonathan Grant      2026-03-16  4602  			pr_info("Thermal state change\n");
2cf4f7ebe37ac2 drivers/platform/x86/asus-wmi.c  Jonathan Grant      2026-03-16  4603  		else
3e70a57b659463 drivers/platform/x86/asus-wmi.c  Luca Stefani        2022-05-06  4604  			pr_info("Unknown key code 0x%x\n", code);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4605  }
3d7b165539d417 drivers/platform/x86/eeepc-wmi.c Yong Wang           2010-04-11  4606  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
Posted by kernel test robot 2 weeks, 6 days ago
Hi Jonathan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on amd-pstate/linux-next]
[also build test WARNING on amd-pstate/bleeding-edge linus/master v7.0-rc4 next-20260316]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jonathan-Grant/platform-x86-asus-wmi-log-thermal-notification-event/20260316-204950
base:   https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git linux-next
patch link:    https://lore.kernel.org/r/94dbe1e1-d706-47aa-abf5-f5d76aacf017%40jguk.org
patch subject: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
config: i386-randconfig-014-20260317 (https://download.01.org/0day-ci/archive/20260318/202603180137.ePqnMidQ-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260318/202603180137.ePqnMidQ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603180137.ePqnMidQ-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/platform/x86/asus-wmi.c:4603:3: warning: add explicit braces to avoid dangling else [-Wdangling-else]
    4603 |                 else
         |                 ^
   1 warning generated.


vim +4603 drivers/platform/x86/asus-wmi.c

  4538	
  4539	static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
  4540	{
  4541		enum led_brightness led_value;
  4542		unsigned int key_value = 1;
  4543		bool autorelease = 1;
  4544	
  4545		if (asus->driver->key_filter) {
  4546			asus->driver->key_filter(asus->driver, &code, &key_value,
  4547						 &autorelease);
  4548			if (code == ASUS_WMI_KEY_IGNORE)
  4549				return;
  4550		}
  4551	
  4552		if (acpi_video_get_backlight_type() == acpi_backlight_vendor &&
  4553		    code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNDOWN_MAX) {
  4554			asus_wmi_backlight_notify(asus, code);
  4555			return;
  4556		}
  4557	
  4558		scoped_guard(spinlock_irqsave, &asus_ref.lock)
  4559			led_value = asus->kbd_led_wk;
  4560	
  4561		if (code == NOTIFY_KBD_BRTUP) {
  4562			kbd_led_set_by_kbd(asus, led_value + 1);
  4563			return;
  4564		}
  4565		if (code == NOTIFY_KBD_BRTDWN) {
  4566			kbd_led_set_by_kbd(asus, led_value - 1);
  4567			return;
  4568		}
  4569		if (code == NOTIFY_KBD_BRTTOGGLE) {
  4570			if (led_value >= ASUS_EV_MAX_BRIGHTNESS)
  4571				kbd_led_set_by_kbd(asus, 0);
  4572			else
  4573				kbd_led_set_by_kbd(asus, led_value + 1);
  4574			return;
  4575		}
  4576	
  4577		if (code == NOTIFY_FNLOCK_TOGGLE) {
  4578			asus->fnlock_locked = !asus->fnlock_locked;
  4579			asus_wmi_fnlock_update(asus);
  4580			return;
  4581		}
  4582	
  4583		if (code == asus->tablet_switch_event_code) {
  4584			asus_wmi_tablet_mode_get_state(asus);
  4585			return;
  4586		}
  4587	
  4588		if (code == NOTIFY_KBD_FBM || code == NOTIFY_KBD_TTP) {
  4589			if (asus->fan_boost_mode_available)
  4590				fan_boost_mode_switch_next(asus);
  4591			if (asus->throttle_thermal_policy_dev)
  4592				platform_profile_cycle();
  4593			return;
  4594		}
  4595	
  4596		if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle)
  4597			return;
  4598	
  4599		if (!sparse_keymap_report_event(asus->inputdev, code,
  4600						key_value, autorelease))
  4601			if (code == NOTIFY_THERMAL)
  4602				pr_info("Thermal state change\n");
> 4603			else
  4604				pr_info("Unknown key code 0x%x\n", code);
  4605	}
  4606	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
Posted by kernel test robot 3 weeks ago
Hi Jonathan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on amd-pstate/linux-next]
[also build test WARNING on amd-pstate/bleeding-edge linus/master v6.16-rc1 next-20260316]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Jonathan-Grant/platform-x86-asus-wmi-log-thermal-notification-event/20260316-204950
base:   https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git linux-next
patch link:    https://lore.kernel.org/r/94dbe1e1-d706-47aa-abf5-f5d76aacf017%40jguk.org
patch subject: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
config: x86_64-rhel-9.4-ltp (https://download.01.org/0day-ci/archive/20260317/202603170109.u5EehsZj-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260317/202603170109.u5EehsZj-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603170109.u5EehsZj-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/platform/x86/asus-wmi.c: In function 'asus_wmi_handle_event_code':
>> drivers/platform/x86/asus-wmi.c:4599:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
    4599 |         if (!sparse_keymap_report_event(asus->inputdev, code,
         |            ^


vim +/else +4599 drivers/platform/x86/asus-wmi.c

8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4538  
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4539  static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4540  {
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4541  	enum led_brightness led_value;
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4542  	unsigned int key_value = 1;
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4543  	bool autorelease = 1;
3d7b165539d417 drivers/platform/x86/eeepc-wmi.c Yong Wang           2010-04-11  4544  
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4545  	if (asus->driver->key_filter) {
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4546  		asus->driver->key_filter(asus->driver, &code, &key_value,
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4547  					 &autorelease);
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4548  		if (code == ASUS_WMI_KEY_IGNORE)
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4549  			return;
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4550  	}
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4551  
a5b92be2482e5f drivers/platform/x86/asus-wmi.c  Hans de Goede       2023-10-17  4552  	if (acpi_video_get_backlight_type() == acpi_backlight_vendor &&
a5b92be2482e5f drivers/platform/x86/asus-wmi.c  Hans de Goede       2023-10-17  4553  	    code >= NOTIFY_BRNUP_MIN && code <= NOTIFY_BRNDOWN_MAX) {
a5b92be2482e5f drivers/platform/x86/asus-wmi.c  Hans de Goede       2023-10-17  4554  		asus_wmi_backlight_notify(asus, code);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4555  		return;
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03  4556  	}
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03  4557  
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4558  	scoped_guard(spinlock_irqsave, &asus_ref.lock)
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4559  		led_value = asus->kbd_led_wk;
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4560  
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4561  	if (code == NOTIFY_KBD_BRTUP) {
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4562  		kbd_led_set_by_kbd(asus, led_value + 1);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4563  		return;
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4564  	}
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4565  	if (code == NOTIFY_KBD_BRTDWN) {
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4566  		kbd_led_set_by_kbd(asus, led_value - 1);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4567  		return;
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4568  	}
ed99d29b2b1562 drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4569  	if (code == NOTIFY_KBD_BRTTOGGLE) {
7525566abd360c drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4570  		if (led_value >= ASUS_EV_MAX_BRIGHTNESS)
29f6eb533c3be9 drivers/platform/x86/asus-wmi.c  Jian-Hong Pan       2018-10-22  4571  			kbd_led_set_by_kbd(asus, 0);
ed99d29b2b1562 drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4572  		else
fac55d29581fcd drivers/platform/x86/asus-wmi.c  Antheas Kapenekakis 2026-01-22  4573  			kbd_led_set_by_kbd(asus, led_value + 1);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4574  		return;
ed99d29b2b1562 drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4575  	}
dbb3d78f61bade drivers/platform/x86/asus-wmi.c  Chris Chiu          2018-06-20  4576  
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4577  	if (code == NOTIFY_FNLOCK_TOGGLE) {
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4578  		asus->fnlock_locked = !asus->fnlock_locked;
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4579  		asus_wmi_fnlock_update(asus);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4580  		return;
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4581  	}
487579bab867e7 drivers/platform/x86/asus-wmi.c  Chris Chiu          2019-04-18  4582  
1ea0d3b46798af drivers/platform/x86/asus-wmi.c  Hans de Goede       2022-08-24  4583  	if (code == asus->tablet_switch_event_code) {
1ea0d3b46798af drivers/platform/x86/asus-wmi.c  Hans de Goede       2022-08-24  4584  		asus_wmi_tablet_mode_get_state(asus);
e397c3c460bf38 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-13  4585  		return;
e397c3c460bf38 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-13  4586  	}
e397c3c460bf38 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-13  4587  
601eb4c8e15002 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-26  4588  	if (code == NOTIFY_KBD_FBM || code == NOTIFY_KBD_TTP) {
601eb4c8e15002 drivers/platform/x86/asus-wmi.c  Luke D. Jones       2022-08-26  4589  		if (asus->fan_boost_mode_available)
9af93db9e140a4 drivers/platform/x86/asus-wmi.c  Daniel Drake        2019-07-17  4590  			fan_boost_mode_switch_next(asus);
bcbfcebda2cbc6 drivers/platform/x86/asus-wmi.c  Mohamed Ghanmi      2024-06-09  4591  		if (asus->throttle_thermal_policy_dev)
b0955ce555478e drivers/platform/x86/asus-wmi.c  Armin Wolf          2024-11-07  4592  			platform_profile_cycle();
2daa86e78c494d drivers/platform/x86/asus-wmi.c  Leonid Maksymchuk   2019-12-15  4593  		return;
2daa86e78c494d drivers/platform/x86/asus-wmi.c  Leonid Maksymchuk   2019-12-15  4594  	}
2daa86e78c494d drivers/platform/x86/asus-wmi.c  Leonid Maksymchuk   2019-12-15  4595  
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4596  	if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle)
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4597  		return;
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03  4598  
a2a96f0c722180 drivers/platform/x86/asus-wmi.c  AceLan Kao          2012-10-03 @4599  	if (!sparse_keymap_report_event(asus->inputdev, code,
c4453f6a7ceff3 drivers/platform/x86/asus-wmi.c  Seth Forshee        2011-07-01  4600  					key_value, autorelease))
2cf4f7ebe37ac2 drivers/platform/x86/asus-wmi.c  Jonathan Grant      2026-03-16  4601  		if (code == NOTIFY_THERMAL)
2cf4f7ebe37ac2 drivers/platform/x86/asus-wmi.c  Jonathan Grant      2026-03-16  4602  			pr_info("Thermal state change\n");
2cf4f7ebe37ac2 drivers/platform/x86/asus-wmi.c  Jonathan Grant      2026-03-16  4603  		else
3e70a57b659463 drivers/platform/x86/asus-wmi.c  Luca Stefani        2022-05-06  4604  			pr_info("Unknown key code 0x%x\n", code);
8abd752bd4733e drivers/platform/x86/asus-wmi.c  Yurii Pavlovskyi    2019-05-14  4605  }
3d7b165539d417 drivers/platform/x86/eeepc-wmi.c Yong Wang           2010-04-11  4606  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Re: [PATCH v2] platform/x86: asus-wmi: log thermal notification event
Posted by Mario Limonciello 3 weeks ago

On 3/16/26 07:49, Jonathan Grant wrote:
> [You don't often get email from jg@jguk.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
> 
>  From e110b7489b320588a7d334bf0a4e20e3e25784e7 Mon Sep 17 00:00:00 2001
> From: Jonathan Grant <jg@jguk.org>
> Date: Sat, 14 Mar 2026 02:11:09 +0000
> Subject: [PATCH] platform/x86: asus-wmi: log thermal notification event
> 
> Print a diagnostic message when the ASUS WMI interface receives
> event 0x6d. This event was observed shortly before thermal
> shutdown on an ASUS N56VB under heavy system load. The message
> helps diagnose unexpected thermal power-offs.
> 
> Signed-off-by: Jonathan Grant <jg@jguk.org>
> ---
> v2:
>   - follow kernel patch guidelines
>   - rename event to NOTIFY_THERMAL
>   - document that event 0x6d was observed before thermal shutdown
>     on ASUS N56VB (BIOS WMI version 7.9, SFUN value 0x6a0877)
>   - improve commit message description
>   - remove stray blank line
> 
>   drivers/platform/x86/asus-wmi.c | 7 +++++--
>   1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 7c0915e097ba..6ab3886ad28f 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -70,6 +70,7 @@ module_param(fnlock_default, bool, 0444);
>   #define NOTIFY_KBD_TTP                 0xae
>   #define NOTIFY_LID_FLIP                        0xfa
>   #define NOTIFY_LID_FLIP_ROG            0xbd
> +#define NOTIFY_THERMAL                 0x6d
> 
>   #define ASUS_WMI_FNLOCK_BIOS_DISABLED  BIT(0)
> 
> @@ -4590,7 +4591,6 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
>                  if (asus->throttle_thermal_policy_dev)
>                          platform_profile_cycle();
>                  return;
> -

You shouldn't change unrelated whitespace

>          }
> 
>          if (is_display_toggle(code) && asus->driver->quirks->no_display_toggle)
> @@ -4598,7 +4598,10 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
> 
>          if (!sparse_keymap_report_event(asus->inputdev, code,
>                                          key_value, autorelease))
> -               pr_info("Unknown key code 0x%x\n", code);
> +               if (code == NOTIFY_THERMAL)
> +                       pr_info("Thermal state change\n");
> +               else
> +                       pr_info("Unknown key code 0x%x\n", code);
>   }
> 
>   static void asus_wmi_notify(union acpi_object *obj, void *context)
> --
> 2.43.0
[PATCH v3] platform/x86: asus-wmi: log thermal notification event
Posted by Jonathan Grant 2 weeks, 6 days ago
From 4eb1a89ef5b481a8bd85bd68735b879e4ed6cb27 Mon Sep 17 00:00:00 2001
From: Jonathan Grant <jg@jguk.org>
Date: Sat, 14 Mar 2026 02:11:09 +0000
Subject: [PATCH] platform/x86: asus-wmi: log thermal notification event

Print a diagnostic message when the ASUS WMI interface receives event 0x6d.
This event was observed shortly before thermal shutdown on an ASUS N56VB under
heavy system load. The message helps diagnose unexpected thermal power-offs.

Signed-off-by: Jonathan Grant <jg@jguk.org>
---
v3:
 - do not change unrelated whitespace
 - address -Wdangling-else by adding braces

 drivers/platform/x86/asus-wmi.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index 7c0915e097ba..3bdd92baac57 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -70,6 +70,7 @@ module_param(fnlock_default, bool, 0444);
 #define NOTIFY_KBD_TTP			0xae
 #define NOTIFY_LID_FLIP			0xfa
 #define NOTIFY_LID_FLIP_ROG		0xbd
+#define NOTIFY_THERMAL			0x6d
 
 #define ASUS_WMI_FNLOCK_BIOS_DISABLED	BIT(0)
 
@@ -4597,8 +4598,14 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
 		return;
 
 	if (!sparse_keymap_report_event(asus->inputdev, code,
-					key_value, autorelease))
-		pr_info("Unknown key code 0x%x\n", code);
+					key_value, autorelease)) {
+		if (code == NOTIFY_THERMAL) {
+			pr_info("Thermal state change\n");
+		}
+		else {
+			pr_info("Unknown key code 0x%x\n", code);
+		}
+	}
 }
 
 static void asus_wmi_notify(union acpi_object *obj, void *context)
-- 
2.43.0
Re: [PATCH v3] platform/x86: asus-wmi: log thermal notification event
Posted by Mario Limonciello 2 weeks, 6 days ago

On 3/17/2026 4:30 PM, Jonathan Grant wrote:
>  From 4eb1a89ef5b481a8bd85bd68735b879e4ed6cb27 Mon Sep 17 00:00:00 2001
> From: Jonathan Grant <jg@jguk.org>
> Date: Sat, 14 Mar 2026 02:11:09 +0000
> Subject: [PATCH] platform/x86: asus-wmi: log thermal notification event
> 
> Print a diagnostic message when the ASUS WMI interface receives event 0x6d.
> This event was observed shortly before thermal shutdown on an ASUS N56VB under
> heavy system load. The message helps diagnose unexpected thermal power-offs.
> 
> Signed-off-by: Jonathan Grant <jg@jguk.org>
> ---
> v3:
>   - do not change unrelated whitespace
>   - address -Wdangling-else by adding braces
> 
>   drivers/platform/x86/asus-wmi.c | 11 +++++++++--
>   1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
> index 7c0915e097ba..3bdd92baac57 100644
> --- a/drivers/platform/x86/asus-wmi.c
> +++ b/drivers/platform/x86/asus-wmi.c
> @@ -70,6 +70,7 @@ module_param(fnlock_default, bool, 0444);
>   #define NOTIFY_KBD_TTP			0xae
>   #define NOTIFY_LID_FLIP			0xfa
>   #define NOTIFY_LID_FLIP_ROG		0xbd
> +#define NOTIFY_THERMAL			0x6d
>   
>   #define ASUS_WMI_FNLOCK_BIOS_DISABLED	BIT(0)
>   
> @@ -4597,8 +4598,14 @@ static void asus_wmi_handle_event_code(int code, struct asus_wmi *asus)
>   		return;
>   
>   	if (!sparse_keymap_report_event(asus->inputdev, code,
> -					key_value, autorelease))
> -		pr_info("Unknown key code 0x%x\n", code);
> +					key_value, autorelease)) {
> +		if (code == NOTIFY_THERMAL) {
> +			pr_info("Thermal state change\n");

Why are you still sending NOTIFY_THERMAL to 
sparse_keymap_report_event()?  It will always fail.

Shouldn't you be catching this earlier in the function like how 
NOTIFY_KBD_FBM and NOTIFY_KBD_TTP work?

> +		}
> +		else {
> +			pr_info("Unknown key code 0x%x\n", code);
> +		}
> +	}
>   }
>   
>   static void asus_wmi_notify(union acpi_object *obj, void *context)