All of lore.kernel.org
 help / color / mirror / Atom feed
From: Darren Hart <dvhart@infradead.org>
To: "Michał Kępień" <kernel@kempniu.pl>
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: Thu, 3 Mar 2016 09:16:55 -0800	[thread overview]
Message-ID: <20160303171655.GD1092@dvhart-mobl5.amr.corp.intel.com> (raw)
In-Reply-To: <20160302123504.GB25223@eudyptula.hq.kempniu.pl>

On Wed, Mar 02, 2016 at 01:35:04PM +0100, Michał Kępień wrote:
> > 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:

I understand this better now, thank you for the additional explanation.

> > > > > > > > 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 } },
> > > > > > > > 

Your description below helped explain why the KE_KEY change was necessary, the
commit message didn't do that for me. Just explicitly stating "when there is no
i8042 interrupt, the WMI even must generate a valid KE_KEY" or something along
those lines would help.

> > > > > > > >  	{ 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...

And ultimately, that is under our control. So let's just not do that :-)

A comment by the definition of KEY_PROG4 that notes it's meaning in this driver
should prevent any future attempts at overloading it and breaking this.

> > > > > > 
> > > > > > 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.

Got it! Thanks! A couple of comments and I think this is a reasonable solution.


> 
> 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ń
> 

-- 
Darren Hart
Intel Open Source Technology Center

  reply	other threads:[~2016-03-03 17:17 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ń
2016-03-03 17:16                                     ` Darren Hart [this message]
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=20160303171655.GD1092@dvhart-mobl5.amr.corp.intel.com \
    --to=dvhart@infradead.org \
    --cc=darek.stojaczyk@gmail.com \
    --cc=kernel@kempniu.pl \
    --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.