Dang, first ever patch and a typo crept in right before the commit...
:-/ Corrected patch here:
Those events occur when a keyboard cover is attached to a ThinkPad
Tablet device. Typically, they are used to switch from normal to tablet
mode in userspace; e.g., to offer touch keyboard choices when focus goes
to a text box and no keyboard is attached, or to enable autorotation of
the display according to the builtin orientation sensor.
No attempt is taken to emit an EV_SW event for SW_TABLET_MODE; this is
left to userspace. So this patch is mainly to avoid warnings about
unknown and unhandled events, which are now reported as:
* Event 0x4012: attached keyboard cover
* Event 0x4013: detached keyboard cover
Tested as working on a ThinkPad X1 Tablet Gen 2, 20JCS00C00, and as
non-interfering with a ThinkPad X1 Carbon 7th, 20QESABM02 (normal
clamshell, so it does not have a keyboard cover).
Signed-off-by: Alexander Kobel <a-...@a-...>
---
drivers/platform/x86/thinkpad_acpi.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/platform/x86/thinkpad_acpi.c
b/drivers/platform/x86/thinkpad_acpi.c
index c404706379d9..c16fd8c9d2fa 100644
--- a/drivers/platform/x86/thinkpad_acpi.c
+++ b/drivers/platform/x86/thinkpad_acpi.c
@@ -174,6 +174,8 @@ enum tpacpi_hkey_event_t {
or port replicator */
TP_HKEY_EV_HOTPLUG_UNDOCK = 0x4011, /* undocked from hotplug
dock or port replicator */
+ TP_HKEY_EV_KBD_COVER_ATTACH = 0x4012, /* attached keyboard cover */
+ TP_HKEY_EV_KBD_COVER_DETACH = 0x4013, /* detached keyboard cover */
/* User-interface events */
TP_HKEY_EV_LID_CLOSE = 0x5001, /* laptop lid closed */
@@ -3989,6 +3991,12 @@ static bool hotkey_notify_dockevent(const u32 hkey,
case TP_HKEY_EV_HOTPLUG_UNDOCK: /* undocked from port replicator */
pr_info("undocked from hotplug port replicator\n");
return true;
+ case TP_HKEY_EV_KBD_COVER_ATTACH: /* attached keyboard cover */
+ pr_info("attached keyboard cover\n");
+ return true;
+ case TP_HKEY_EV_KBD_COVER_DETACH: /* detached keyboard cover */
+ pr_info("detached keyboard cover\n");
+ return true;
default:
return false;
--
2.30.0
On 1/18/21 6:26 PM, Alexander Kobel wrote:
> Those events occur when a keyboard cover is attached to a ThinkPad
> Tablet device. Typically, they are used to switch from normal to tablet
> mode in userspace; e.g., to offer touch keyboard choices when focus goes
> to a text box and no keyboard is attached, or to enable autorotation of
> the display according to the builtin orientation sensor.
>
> No attempt is taken to emit an EV_SW event for SW_TABLET_MODE; this is
> left to userspace. So this patch is mainly to avoid warnings about
> unknown and unhandled events, which are now reported as:
>
> * Event 0x4012: attached keyboard cover
> * Event 0x4013: detached keyboard cover
>
> Tested as working on a ThinkPad X1 Tablet Gen 2, 20JCS00C00, and as
> non-interfering with a ThinkPad X1 Carbon 7th, 20QESABM02 (normal
> clamshell, so it does not have a keyboard cover).
>
> Signed-off-by: Alexander Kobel <a-...@a-...>
> ---
> drivers/platform/x86/thinkpad_acpi.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/thinkpad_acpi.c
> b/drivers/platform/x86/thinkpad_acpi.c
> index c404706379d9..e3b5f02bafa6 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -174,6 +174,8 @@ enum tpacpi_hkey_event_t {
> or port replicator */
> TP_HKEY_EV_HOTPLUG_UNDOCK = 0x4011, /* undocked from hotplug
> dock or port replicator */
> + TP_HKEY_EV_KBD_COVER_ATTACH = 0x4012, /* attached keyboard cover */
> + TP_HKEY_EV_KBD_COVER_DETACH = 0x4013, /* detached keyboard cover */
>
> /* User-interface events */
> TP_HKEY_EV_LID_CLOSE = 0x5001, /* laptop lid closed */
> @@ -3976,7 +3978,7 @@ static bool hotkey_notify_dockevent(const u32 hkey,
> *ignore_acpi_ev = false;
>
> switch (hkey) {
> - case TP_HKEY_EV_UNDOCK_ACK:
> + case TP_HKEY_EV_UNDOCK_ACK cover:
> /* ACPI undock operation completed after wakeup */
> hotkey_autosleep_ack = 1;
> pr_info("undocked\n");
> @@ -3989,6 +3991,12 @@ static bool hotkey_notify_dockevent(const u32 hkey,
> case TP_HKEY_EV_HOTPLUG_UNDOCK: /* undocked from port replicator */
> pr_info("undocked from hotplug port replicator\n");
> return true;
> + case TP_HKEY_EV_KBD_COVER_ATTACH: /* attached keyboard cover */
> + pr_info("attached keyboard cover\n");
> + return true;
> + case TP_HKEY_EV_KBD_COVER_DETACH: /* detached keyboard cover */
> + pr_info("detached keyboard cover\n");
> + return true;
>
> default:
> return false;
>
>
> _______________________________________________
> ibm-acpi-devel mailing list
> ibm...@li...
> https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel
>
|