From: Anisse Astier <anisse@astier.eu>
To: Maxim Mikityanskiy <maxtram95@gmail.com>
Cc: platform-driver-x86@vger.kernel.org, jlee@suse.com
Subject: Re: [PATCH v3 11/12] msi-wmi: Introduced quirk_last_pressed
Date: Tue, 11 Dec 2012 17:29:30 +0100 [thread overview]
Message-ID: <20121211172930.0490654a@destiny.ordissimo> (raw)
In-Reply-To: <1354888162-12109-12-git-send-email-maxtram95@gmail.com>
On Fri, 7 Dec 2012 15:49:21 +0200, Maxim Mikityanskiy <maxtram95@gmail.com> wrote :
> Introduced quirk_last_pressed variable that would indicate if
> last_pressed is used or not. Made it work even if scancode sequence is
> sparse.
>
> Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
> ---
> drivers/platform/x86/msi-wmi.c | 43 ++++++++++++++++++++++--------------------
> 1 file changed, 23 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
> index 3a60619..273f647 100644
> --- a/drivers/platform/x86/msi-wmi.c
> +++ b/drivers/platform/x86/msi-wmi.c
> @@ -43,8 +43,7 @@ MODULE_ALIAS("wmi:" MSIWMI_BIOS_GUID);
> MODULE_ALIAS("wmi:" MSIWMI_EVENT_GUID);
>
> enum msi_scancodes {
> - MSI_SCANCODE_BASE = 0xD0,
> - MSI_KEY_BRIGHTNESSUP = MSI_SCANCODE_BASE,
> + MSI_KEY_BRIGHTNESSUP = 0xD0,
> MSI_KEY_BRIGHTNESSDOWN,
> MSI_KEY_VOLUMEUP,
> MSI_KEY_VOLUMEDOWN,
> @@ -59,6 +58,7 @@ static struct key_entry msi_wmi_keymap[] = {
> { KE_END, 0 }
> };
> static ktime_t last_pressed[ARRAY_SIZE(msi_wmi_keymap) - 1];
> +static bool quirk_last_pressed;
>
> static const char *event_wmi_guid;
>
> @@ -169,11 +169,15 @@ static void msi_wmi_notify(u32 value, void *context)
> pr_debug("Eventcode: 0x%x\n", eventcode);
> key = sparse_keymap_entry_from_scancode(msi_wmi_input_dev,
> eventcode);
> - if (key) {
> + if (!key) {
> + pr_info("Unknown key pressed - %x\n", eventcode);
> + goto msi_wmi_notify_exit;
> + }
> + if (quirk_last_pressed) {
> + size_t key_index = key - msi_wmi_keymap;
Do you mean key->code - MSI_SCANCODE_BASE ? I'm not sure I understand the
intent here otherwise.
> ktime_t diff;
> cur = ktime_get_real();
> - diff = ktime_sub(cur, last_pressed[key->code -
> - MSI_SCANCODE_BASE]);
> + diff = ktime_sub(cur, last_pressed[key_index]);
> /* Ignore event if the same event happened in a 50 ms
> timeframe -> Key press may result in 10-20 GPEs */
> if (ktime_to_us(diff) < 1000 * 50) {
> @@ -182,21 +186,19 @@ static void msi_wmi_notify(u32 value, void *context)
> key->code, ktime_to_us(diff));
> goto msi_wmi_notify_exit;
> }
> - last_pressed[key->code - MSI_SCANCODE_BASE] = cur;
> -
> - if (key->type == KE_KEY &&
> - /* Brightness is served via acpi video driver */
> - (backlight ||
> - (key->code != MSI_KEY_BRIGHTNESSUP &&
> - key->code != MSI_KEY_BRIGHTNESSDOWN))) {
> - pr_debug("Send key: 0x%X - "
> - "Input layer keycode: %d\n",
> - key->code, key->keycode);
> - sparse_keymap_report_entry(msi_wmi_input_dev,
> - key, 1, true);
> - }
> - } else
> - pr_info("Unknown key pressed - %x\n", eventcode);
> + last_pressed[key_index] = cur;
> + }
> +
> + if (key->type == KE_KEY &&
> + /* Brightness is served via acpi video driver */
> + (backlight ||
> + (key->code != MSI_KEY_BRIGHTNESSUP &&
> + key->code != MSI_KEY_BRIGHTNESSDOWN))) {
> + pr_debug("Send key: 0x%X - Input layer keycode: %d\n",
> + key->code, key->keycode);
> + sparse_keymap_report_entry(msi_wmi_input_dev, key, 1,
> + true);
> + }
> } else
> pr_info("Unknown event received\n");
>
> @@ -281,6 +283,7 @@ static int __init msi_wmi_init(void)
>
> pr_debug("Event handler installed\n");
> event_wmi_guid = MSIWMI_EVENT_GUID;
> + quirk_last_pressed = true;
> }
>
> if (wmi_has_guid(MSIWMI_BIOS_GUID) && !acpi_video_backlight_support()) {
next prev parent reply other threads:[~2012-12-11 16:29 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-07 13:49 [PATCH v3 00/12] Add MSI Wind U90/U100 support Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 01/12] msi-laptop: Use proper return codes instead of -1 Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 02/12] msi-laptop: Work around gcc warning Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 03/12] msi-laptop: merge quirk tables to one Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 04/12] msi-laptop: Add MSI Wind U90/U100 support Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 05/12] msi-laptop: Add missing ABI documentation Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 06/12] msi-laptop: Disable brightness control for new EC Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 07/12] msi-wmi: Fix memory leak Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 08/12] msi-wmi: Avoid repeating constants Maxim Mikityanskiy
2012-12-10 5:52 ` joeyli
2012-12-07 13:49 ` [PATCH v3 09/12] msi-wmi: Use enums for scancodes Maxim Mikityanskiy
2012-12-10 6:01 ` joeyli
2012-12-07 13:49 ` [PATCH v3 10/12] msi-wmi: Make keys and backlight independent Maxim Mikityanskiy
2012-12-07 13:49 ` [PATCH v3 11/12] msi-wmi: Introduced quirk_last_pressed Maxim Mikityanskiy
2012-12-11 16:29 ` Anisse Astier [this message]
2012-12-11 17:07 ` Maxim Mikityanskiy
2012-12-11 17:39 ` Anisse Astier
2012-12-11 18:27 ` Maxim Mikityanskiy
2012-12-12 9:58 ` Anisse Astier
2012-12-12 18:58 ` Dmitry Torokhov
2012-12-13 17:10 ` Anisse Astier
2012-12-13 18:06 ` Maxim Mikityanskiy
2012-12-13 18:18 ` Dmitry Torokhov
2012-12-13 18:30 ` Maxim Mikityanskiy
2012-12-14 10:37 ` joeyli
2012-12-14 11:13 ` Thomas Renninger
2012-12-07 13:49 ` [PATCH v3 12/12] msi-wmi: Add MSI Wind support Maxim Mikityanskiy
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=20121211172930.0490654a@destiny.ordissimo \
--to=anisse@astier.eu \
--cc=jlee@suse.com \
--cc=maxtram95@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox