All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michał Kępień" <kernel@kempniu.pl>
To: Darren Hart <dvhart@infradead.org>
Cc: "Pali Rohár" <pali.rohar@gmail.com>,
	"Matthew Garrett" <mjg59@srcf.ucam.org>,
	"Darek Stojaczyk" <darek.stojaczyk@gmail.com>,
	platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 4/5] dell-wmi: properly process Dell Instant Launch hotkey
Date: Wed, 2 Mar 2016 13:35:04 +0100	[thread overview]
Message-ID: <20160302123504.GB25223@eudyptula.hq.kempniu.pl> (raw)
In-Reply-To: <20160229230015.GF7499@dvhart-mobl5.amr.corp.intel.com>

> On Mon, Feb 29, 2016 at 09:56:03PM +0100, Pali Rohár wrote:
> > On Monday 29 February 2016 21:49:27 you wrote:
> > > > On Monday 29 February 2016 21:31:23 Michał Kępień wrote:
> > > > > > > diff --git a/drivers/platform/x86/dell-wmi.c
> > > > > > > b/drivers/platform/x86/dell-wmi.c index 65edd93..ffc957b5
> > > > > > > 100644 --- a/drivers/platform/x86/dell-wmi.c
> > > > > > > +++ b/drivers/platform/x86/dell-wmi.c
> > > > > > > @@ -111,7 +111,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 } },
> > > > > > > 
> > > > > > > @@ -235,6 +235,9 @@ static void dell_wmi_process_key(int
> > > > > > > reported_key)
> > > > > > > 
> > > > > > >  	    acpi_video_handles_brightness_key_presses())
> > > > > > >  		
> > > > > > >  		return;
> > > > > > > 
> > > > > > > +	if (key->keycode == KEY_PROG4 &&
> > > > > > > !wmi_requires_smbios_request) +		return;
> > > > > > > +
> > > > > > 
> > > > > > Here I would rather test against reported_key, not keycode. If
> > > > > > somebody in future adds KEY_PROG4 for something else we will
> > > > > > have problem...
> > > > > 
> > > > > As 0xe025 is currently the only event we know about that should
> > > > > be ignored on some machines and processed on others, this makes
> > > > > sense,
> > > > > 
> > > > > at least for now.  If I change the first condition to:
> > > > >     reported_key == 0xe025
> > > > 
> > > > There will be need also change for 5/5 patch...
> > > 
> > > Why?  Are you aware of any model which sends a 0xe029 WMI event _and_
> > > generates an i8042 interrupt?  If not, WMI event 0xe029 should always
> > > be turned into a key event, as per the keymap.
> > 
> > No, but your current patch 4/5 and 5/5 do that (because it checks 
> > KEY_PROG4). But if it is not needed, I'm happy because of one hook less.
> 
> From my reading, patch 5/5 adds 0xe029 to the reported keys that need to be
> ignored, so the test would need to include both if it isn't using the common
> keycode KEY_PROG4. I believe that is what Pali is saying as well. Is this not
> the correct reading of 5/5?

It's the other way round :)  Perhaps explaining the issue once again
will help.

Until this patch series, dell-wmi was only "aware" of laptops which
generate _both_ an i8042 interrupt and a WMI event when Dell Instant
Launch is pressed.  Thus, as the i8042 interrupt already caused a key
event to be generated, there was no point in generating another one for
the WMI event, hence the KE_IGNORE entry for 0xe025 in the keymap.

Enter Vostro V131, which does _not_ generate an i8042 interrupt when
Dell Instant Launch is pressed, yet still generates a WMI event.  In
other words, there was no way of generating a key event for Dell Instant
Launch on that model without changing the relevant keymap entry into a
KE_KEY one.  However, I still needed to ensure that for most machines
that WMI event would _not_ be turned into a key event.  That's why patch
4/5 changes the keymap entry to a KE_KEY one, while also adding a
conditional return to the key processing function, thus making sure that
the previous behavior (ignoring WMI event 0xe025) is preserved on most
machines.

I used KEY_PROG4 in the conditional expression because a mapped keycode
is also used in a comparison just above the code inserted by patch 4/5.
For event 0xe029, however, the conditional expression added by patch 4/5
should always evaluate to false.  Note that if we use KEY_PROG4 in the
comparison, the second condition will be false; if we use 0xe025 in the
comparison, the first condition will be false.  The latter variant
(suggested by Pali) will work fine until we hear of a model which
generates _both_ WMI event 0xe029 and an i8042 interrupt upon pressing
some hotkey.

I was hoping the commit message for patch 4/5 would be clear enough to
convey my intent, yet it seems I managed to confuse you.  Maybe that's a
sign that the commit message and/or code should be rephrased, but I
can't be a judge on this one myself.  Let me know what you think.  Pali,
if you think this is good enough as it is, please add your Reviewed-by.
If you have doubts, I'm all ears.

-- 
Best regards,
Michał Kępień

  reply	other threads:[~2016-03-02 12:34 UTC|newest]

Thread overview: 82+ 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 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-02-29 23:00                                   ` Darren Hart
2016-03-02 12:35                                   ` Michał Kępień [this message]
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
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=20160302123504.GB25223@eudyptula.hq.kempniu.pl \
    --to=kernel@kempniu.pl \
    --cc=darek.stojaczyk@gmail.com \
    --cc=dvhart@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=pali.rohar@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 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.