Re: [PATCH] thinkpad_acpi: unhandled hkey event

From: Darren Hart
Date: Fri Feb 06 2015 - 23:23:55 EST


On Sat, Jan 31, 2015 at 07:52:03PM +0100, Xavier Naveira wrote:
> Pressing Fn+Esc in a Lenovo Thinkpad x240 to lock the Fn keys generates
> an unhandled hkey event
>
> Signed-off-by: Xavier Naveira <xnaveira@xxxxxxxxx>
> ---
> 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;

No need to duplicate the logic here, just add TP_HKEY_EV_KEY_FN_ESC to the list
of fallthrough keys (right after TP_HKEY_EV_KEY_FN).

--
Darren Hart
Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/