From: "Pali Rohár" <pali.rohar@gmail.com>
To: "Michał Kępień" <kernel@kempniu.pl>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
Darren Hart <dvhart@infradead.org>,
platform-driver-x86@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] dell-wmi: process Dell Instant Launch hotkey on Dell Vostro V131
Date: Fri, 4 Dec 2015 09:48:06 +0100 [thread overview]
Message-ID: <20151204084806.GM10982@pali> (raw)
In-Reply-To: <1654e7bcde98f1cf89f698a1e359110c06c6fcd4.1448999372.git.kernel@kempniu.pl>
On Tuesday 01 December 2015 20:51:34 Michał Kępień wrote:
> On some laptop models (e.g. Dell Vostro V131), pressing the Dell Instant
> Launch hotkey does not raise an i8042 interrupt - only WMI event 0xe025
> is generated. As there seems to be no ACPI method or SMI call to
> determine without possible side effects whether a given machine is
> capable of simulating a keypress when this hotkey is pressed, DMI
> matching is used to whitelist the models for which an input event should
> be generated when WMI event 0xe025 is received.
>
> Signed-off-by: Michał Kępień <kernel@kempniu.pl>
> ---
> Changes from v1:
>
> - Use DMI matching instead of a module parameter
> - Change flag name to improve readability
>
> Darren, I am aware this patch conflicts with Andy's WMI rework series
> posted yesterday, so please just let me know if you want me to rebase.
>
> drivers/platform/x86/dell-wmi.c | 39 ++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 38 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
> index 8cb0f57..27c8f49 100644
> --- a/drivers/platform/x86/dell-wmi.c
> +++ b/drivers/platform/x86/dell-wmi.c
> @@ -47,6 +47,38 @@ static int acpi_video;
>
> MODULE_ALIAS("wmi:"DELL_EVENT_GUID);
>
> +struct quirk_entry {
> + bool process_dell_instant_launch;
> +};
> +
> +static struct quirk_entry *quirks;
> +
> +static struct quirk_entry quirk_unknown = {
> +};
> +
> +static struct quirk_entry quirk_dell_vostro_v131 = {
> + .process_dell_instant_launch = true,
> +};
> +
> +static int __init dmi_matched(const struct dmi_system_id *dmi)
> +{
> + quirks = dmi->driver_data;
> + return 1;
> +}
> +
> +static const struct dmi_system_id dell_wmi_quirks[] __initconst = {
> + {
> + .callback = dmi_matched,
> + .ident = "Dell Vostro V131",
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro V131"),
> + },
> + .driver_data = &quirk_dell_vostro_v131,
> + },
> + { }
> +};
> +
It is not possible to simplify this part of code? Currently we only need
boolean variable: ignore 0xe025 event or not. I think that whole quirk
structure is not needed yet (and I would be happy if never in future).
> /*
> * Certain keys are flagged as KE_IGNORE. All of these are either
> * notifications (rather than requests for change) or are also sent
> @@ -87,7 +119,7 @@ static const struct key_entry dell_wmi_legacy_keymap[] __initconst = {
> { KE_IGNORE, 0xe020, { KEY_MUTE } },
>
> /* Shortcut and audio panel keys */
> - { KE_IGNORE, 0xe025, { KEY_RESERVED } },
> + { KE_KEY, 0xe025, { KEY_PROG4 } },
> { KE_IGNORE, 0xe026, { KEY_RESERVED } },
>
> { KE_IGNORE, 0xe02e, { KEY_VOLUMEDOWN } },
> @@ -183,6 +215,9 @@ static void dell_wmi_process_key(int reported_key)
> key->keycode == KEY_BRIGHTNESSDOWN) && acpi_video)
> return;
>
> + if (key->keycode == KEY_PROG4 && !quirks->process_dell_instant_launch)
> + return;
> +
> sparse_keymap_report_entry(dell_wmi_input_dev, key, 1, true);
> }
>
> @@ -432,6 +467,8 @@ static int __init dell_wmi_init(void)
> return -ENODEV;
> }
>
> + quirks = &quirk_unknown;
Unknown sounds like something is not know or we do not know what it is.
But here we know exactly what is needed (= ignore 0xe025 key).
> + dmi_check_system(dell_wmi_quirks);
> dmi_walk(find_hk_type, NULL);
> acpi_video = acpi_video_get_backlight_type() != acpi_backlight_vendor;
>
--
Pali Rohár
pali.rohar@gmail.com
next prev parent reply other threads:[~2015-12-04 8:48 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-26 14:18 [PATCH] dell-wmi: add module param to control Dell Instant Launch hotkey processing Michał Kępień
2015-11-26 14:41 ` Pali Rohár
2015-11-26 14:55 ` Michał Kępień
2015-11-29 19:50 ` Pali Rohár
2015-11-30 14:14 ` Michał Kępień
2015-11-30 14:37 ` Pali Rohár
2015-11-30 14:54 ` Michał Kępień
2015-11-30 20:55 ` Darren Hart
2015-11-30 21:15 ` Darren Hart
2015-12-01 8:47 ` Michał Kępień
2015-12-01 19:51 ` [PATCH v2] dell-wmi: process Dell Instant Launch hotkey on Dell Vostro V131 Michał Kępień
2015-12-04 1:16 ` Darren Hart
2015-12-04 8:56 ` Pali Rohár
2015-12-04 13:27 ` Michał Kępień
2016-01-11 19:12 ` Darren Hart
2016-01-11 20:07 ` Pali Rohár
2016-01-21 9:04 ` Pali Rohár
2016-01-21 10:52 ` Michał Kępień
2016-01-21 13:44 ` Pali Rohár
2016-01-21 14:56 ` Michał Kępień
2016-01-21 15:42 ` Pali Rohár
2016-01-22 11:08 ` Michał Kępień
2016-02-16 14:50 ` [PATCH v3 0/5] Process Dell Instant Launch hotkey on Vostro V131 and Inspiron M5110 Michał Kępień
2016-02-16 14:50 ` [PATCH v3 1/5] dell-laptop: move dell_smi_error() to dell-smbios Michał Kępień
2016-02-16 14:50 ` [PATCH v3 2/5] dell-smbios: rename dell_smi_error() to dell_smbios_error() Michał Kępień
2016-02-16 14:50 ` [PATCH v3 3/5] dell-wmi: enable receiving WMI events on Dell Vostro V131 Michał Kępień
2016-02-16 15:17 ` Pali Rohár
2016-02-16 21:53 ` Michał Kępień
2016-02-20 1:24 ` Darren Hart
2016-02-22 8:56 ` Michał Kępień
2016-02-22 9:03 ` Pali Rohár
2016-02-22 9:13 ` Michał Kępień
2016-02-22 21:17 ` Darren Hart
2016-02-16 14:50 ` [PATCH v3 4/5] dell-wmi: properly process Dell Instant Launch hotkey Michał Kępień
2016-02-16 14:50 ` [PATCH v3 5/5] dell-wmi: support Dell Inspiron M5110 Michał Kępień
2016-02-16 15:22 ` Pali Rohár
2016-02-16 22:03 ` Michał Kępień
2016-02-17 11:42 ` Pali Rohár
2016-02-17 12:01 ` Michał Kępień
2016-02-17 12:08 ` Pali Rohár
2016-02-18 8:25 ` Michał Kępień
2016-02-24 7:20 ` [PATCH v4 0/5] Process Dell Instant Launch hotkey on Vostro V131 and " Michał Kępień
2016-02-24 7:20 ` [PATCH v4 1/5] dell-laptop: move dell_smi_error() to dell-smbios Michał Kępień
2016-02-29 12:52 ` Pali Rohár
2016-02-29 20:22 ` Michał Kępień
2016-02-29 20:24 ` Pali Rohár
2016-02-29 20:41 ` Michał Kępień
2016-02-29 22:50 ` Darren Hart
2016-03-02 11:49 ` Michał Kępień
2016-03-03 11:38 ` Pali Rohár
2016-02-24 7:20 ` [PATCH v4 2/5] dell-smbios: rename dell_smi_error() to dell_smbios_error() Michał Kępień
2016-02-29 12:53 ` Pali Rohár
2016-02-24 7:20 ` [PATCH v4 3/5] dell-wmi: enable receiving WMI events on Dell Vostro V131 Michał Kępień
2016-02-29 12:57 ` Pali Rohár
2016-02-24 7:20 ` [PATCH v4 4/5] dell-wmi: properly process Dell Instant Launch hotkey Michał Kępień
2016-02-29 12:59 ` Pali Rohár
2016-02-29 20:31 ` Michał Kępień
2016-02-29 20:39 ` Pali Rohár
2016-02-29 20:49 ` Michał Kępień
2016-02-29 20:56 ` Pali Rohár
2016-02-29 23:00 ` Darren Hart
2016-03-02 12:35 ` Michał Kępień
2016-03-03 17:16 ` Darren Hart
2016-03-03 18:46 ` Michał Kępień
2016-03-03 20:47 ` Darren Hart
2016-02-29 23:00 ` Darren Hart
2016-02-24 7:20 ` [PATCH v4 5/5] dell-wmi: support Dell Inspiron M5110 Michał Kępień
2016-02-29 13:00 ` Pali Rohár
2016-03-04 13:09 ` [PATCH v5 0/5] Process Dell Instant Launch hotkey on Vostro V131 and " Michał Kępień
2016-03-04 13:09 ` [PATCH v5 1/5] dell-laptop: move dell_smi_error() to dell-smbios Michał Kępień
2016-03-04 13:09 ` [PATCH v5 2/5] dell-smbios: rename dell_smi_error() to dell_smbios_error() Michał Kępień
2016-03-04 13:09 ` [PATCH v5 3/5] dell-wmi: enable receiving WMI events on Dell Vostro V131 Michał Kępień
2016-03-04 13:09 ` [PATCH v5 4/5] dell-wmi: properly process Dell Instant Launch hotkey Michał Kępień
2016-03-04 13:09 ` [PATCH v5 5/5] dell-wmi: support Dell Inspiron M5110 Michał Kępień
2016-03-07 8:27 ` [PATCH v5 0/5] Process Dell Instant Launch hotkey on Vostro V131 and " Pali Rohár
2016-03-08 11:20 ` Darren Hart
2015-12-04 12:55 ` [PATCH v2] dell-wmi: process Dell Instant Launch hotkey on Dell Vostro V131 Michał Kępień
2015-12-04 16:04 ` Andy Lutomirski
2015-12-04 8:48 ` Pali Rohár [this message]
2015-12-04 12:36 ` Michał Kępień
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=20151204084806.GM10982@pali \
--to=pali.rohar@gmail.com \
--cc=dvhart@infradead.org \
--cc=kernel@kempniu.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=mjg59@srcf.ucam.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox