[ltp] Unsupported hkey event
Xavier Naveira
linux-thinkpad@linux-thinkpad.org
Mon, 2 Feb 2015 09:47:36 +0100
Hi,
I found the following message in the kernel log:
Jan 29 07:21:35 xntlaptop kernel: [ 4928.933775] thinkpad_acpi:
unknown possible thermal alarm or keyboard event received
Jan 29 07:21:35 xntlaptop kernel: [ 4928.933785] thinkpad_acpi:
unhandled HKEY event 0x6060
Jan 29 07:21:35 xntlaptop kernel: [ 4928.933789] thinkpad_acpi: please
report the conditions when this event happened to
ibm-acpi-devel@lists.sourceforge.net
and since my interest on how kernel driver development works have been
increasing lately I decided to send a message to the list. After some
code reading I sent in the following patch to the list:
Pressing Fn+Esc in a Lenovo Thinkpad x240 to lock the Fn keys generates
an unhandled hkey event
Signed-off-by: Xavier Naveira <xnaveira@gmail.com>
---
drivers/platform/x86/thinkpad_acpi.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/platform/x86/thinkpad_acpi.c
b/drivers/platform/x86/thinkpad_acpi.c
index c3d11fa..e61c43b 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -196,6 +196,7 @@ enum tpacpi_hkey_event_t {
/* Key-related user-interface events */
TP_HKEY_EV_KEY_NUMLOCK = 0x6000, /* NumLock key pressed */
TP_HKEY_EV_KEY_FN = 0x6005, /* Fn key pressed? E420 */
+ TP_HKEY_EV_KEY_FN_ESC = 0x6060, /* Fn+Esc key pressed X240 */
/* Thermal events */
TP_HKEY_EV_ALARM_BAT_HOT = 0x6011, /* battery too hot */
@@ -3717,6 +3718,12 @@ static bool hotkey_notify_6xxx(const u32 hkey,
*send_acpi_ev = false;
*ignore_acpi_ev = true;
return true;
+ case TP_HKEY_EV_KEY_FN_ESC:
+ /* key press events, we just ignore them as long as the EC
+ * is still reporting them in the normal keyboard stream */
+ *send_acpi_ev = false;
+ *ignore_acpi_ev = true;
+ return true;
default:
pr_warn("unknown possible thermal alarm or keyboard
event received\n");
Since then I've been reading and investigating since the RF_KILL
button only works for wlan and not for wwan or bluetooth in my x240
and then I stumbled upon this list so I figured that I'd send an email
here asking for:
- Opinions on the patch (not that it does anything else than remove
the warning from the log), I sent it to the individuals/lists that I
got from getmaintainers script.
- Opinions on how should I proceed regarding the RF_KILL problem. I
followed the code trying to understand what happens upon RF_KILL key
pressing and I ended up (not surprisingly) at the input_handle_event
function in the input.c but I don't really get where exactly is
decided what to kill and how.
Thank you.