All of lore.kernel.org
 help / color / mirror / Atom feed
From: edip@medip.dev
To: ilpo.jarvinen@linux.intel.com, hansg@kernel.org, kuba@kernel.org
Cc: platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org, Edip Hazuri <edip@medip.dev>
Subject: [PATCH 2/2] platform/x86: hp-wmi: Add support for Fn+P hotkey
Date: Sun,  3 Aug 2025 00:35:42 +0300	[thread overview]
Message-ID: <20250802213541.18791-2-edip@medip.dev> (raw)
In-Reply-To: <20250802212149.16707-2-edip@medip.dev>

From: Edip Hazuri <edip@medip.dev>

Newer Hp Victus (And probably newer omen) e.g. Victus 16-s1011nt that i
own have a Fn+P shortcut intended to use with omen gaming hub for
changing the performance profile. see [1]

> hp_wmi: Unknown event_id - 27 - 0x7
Based on the dmesg warning. I found that the key have 27 as event_id and
0x7 as event_data (keycode). I implemented it in the driver and now
libinput can capture the event.

Tested On Victus 16-s1011nt (9Z791EA) with MB 8C9C

[1]: https://jpcdn.it/img/adadf6c927ffeb75afd8038f95db400a.png

Signed-off-by: Edip Hazuri <edip@medip.dev>
---
 drivers/platform/x86/hp/hp-wmi.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/platform/x86/hp/hp-wmi.c b/drivers/platform/x86/hp/hp-wmi.c
index db5fdee2109..6467ca27db7 100644
--- a/drivers/platform/x86/hp/hp-wmi.c
+++ b/drivers/platform/x86/hp/hp-wmi.c
@@ -122,6 +122,7 @@ enum hp_wmi_event_ids {
 	HPWMI_BATTERY_CHARGE_PERIOD	= 0x10,
 	HPWMI_SANITIZATION_MODE		= 0x17,
 	HPWMI_CAMERA_TOGGLE		= 0x1A,
+	HPWMI_FN_P_HOTKEY		= 0x1B,
 	HPWMI_OMEN_KEY			= 0x1D,
 	HPWMI_SMART_EXPERIENCE_APP	= 0x21,
 };
@@ -280,6 +281,7 @@ struct bios_rfkill2_state {
 static const struct key_entry hp_wmi_keymap[] = {
 	{ KE_KEY, 0x02,    { KEY_BRIGHTNESSUP } },
 	{ KE_KEY, 0x03,    { KEY_BRIGHTNESSDOWN } },
+	{ KE_KEY, 0x07,    { KEY_FN_P } },
 	{ KE_KEY, 0x270,   { KEY_MICMUTE } },
 	{ KE_KEY, 0x20e6,  { KEY_PROG1 } },
 	{ KE_KEY, 0x20e8,  { KEY_MEDIA } },
@@ -981,6 +983,15 @@ static void hp_wmi_notify(union acpi_object *obj, void *context)
 						key_code, 1, true))
 			pr_info("Unknown key code - 0x%x\n", key_code);
 		break;
+	case HPWMI_FN_P_HOTKEY:
+		key_code = hp_wmi_read_int(HPWMI_HOTKEY_QUERY);
+		if (key_code < 0)
+			break;
+
+		if (!sparse_keymap_report_event(hp_wmi_input_dev,
+			key_code, 1, true))
+			pr_info("Unknown key code - 0x%x\n", key_code);
+		break;
 	case HPWMI_OMEN_KEY:
 		if (event_data) /* Only should be true for HP Omen */
 			key_code = event_data;
-- 
2.50.1


  reply	other threads:[~2025-08-02 21:36 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-02 21:21 [PATCH 1/2] Input: Add key event code for Fn + P edip
2025-08-02 21:35 ` edip [this message]
2025-08-12 12:20   ` [PATCH 2/2] platform/x86: hp-wmi: Add support for Fn+P hotkey Ilpo Järvinen
2025-08-12 18:58     ` Edip Hazuri
2025-08-15 14:49 ` [PATCH 1/2] Input: Add key event code for Fn + P Edip Hazuri

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250802213541.18791-2-edip@medip.dev \
    --to=edip@medip.dev \
    --cc=hansg@kernel.org \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.