From: Mauro Carvalho Chehab <mchehab@infradead.org>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Subject: Re: [PATCH 3/5] input.h: add keycodes for Fn Lock
Date: Mon, 29 Jul 2013 07:50:51 -0300 [thread overview]
Message-ID: <20130729075051.25b9e5b9@infradead.org> (raw)
In-Reply-To: <20130729070346.0cad1ace@samsung.com>
Em Mon, 29 Jul 2013 07:03:46 -0300
Mauro Carvalho Chehab <m.chehab@samsung.com> escreveu:
> Hi Dmitry,
>
> Em Sun, 28 Jul 2013 21:53:58 -0700
> Dmitry Torokhov <dmitry.torokhov@gmail.com> escreveu:
>
> > Hi Mauro,
> >
> > On Mon, Jul 29, 2013 at 12:59:37AM -0300, Mauro Carvalho Chehab wrote:
> > > Samsung notebooks have a FN LOCK key. It works like CAPS LOCK or NUM
> > > LOCK keys.
> > >
> > > When FN LOCK key is pressed, any further press to a key with a blue label
> > > on it (Fn keys) will produce the alternate code.
> > >
> > > Another press makes the keyboard to return to its normal state.
> > >
> > > On the notebooks where such feature were found, a FN LOCK on event
> > > produces scancode 0xa8, and a FN LOCK off event produces scancode 0xa9.
> > >
> > > Yet, it is better to reserve some space at the keymap to allow some
> > > different implementation of this feature where the same keycode might
> > > be used.
> > >
> > > Also, as this is actually a switch, add a switch indicator to report
> > > when this switch is set/reset.
> > >
> > > Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
> > > ---
> > > include/uapi/linux/input.h | 5 +++++
> > > 1 file changed, 5 insertions(+)
> > >
> > > diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h
> > > index d584047..4622c34 100644
> > > --- a/include/uapi/linux/input.h
> > > +++ b/include/uapi/linux/input.h
> > > @@ -716,6 +716,10 @@ struct input_keymap_entry {
> > > #define BTN_DPAD_LEFT 0x222
> > > #define BTN_DPAD_RIGHT 0x223
> > >
> > > +#define KEY_FNLOCK_TOGGLE 0x224 /* Request switch Fn on or off */
> > > +#define KEY_FNLOCK_ON 0x225
> > > +#define KEY_FNLOCK_OFF 0x226
> > > +
> > > #define BTN_TRIGGER_HAPPY 0x2c0
> > > #define BTN_TRIGGER_HAPPY1 0x2c0
> > > #define BTN_TRIGGER_HAPPY2 0x2c1
> > > @@ -853,6 +857,7 @@ struct input_keymap_entry {
> > > #define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */
> > > #define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */
> > > #define SW_LINEIN_INSERT 0x0d /* set = inserted */
> > > +#define SW_FNLOCK 0x0e /* set = Fn locked */
> >
> > I am not sure if we need both the keys and the switch, so I would
> > probably simply go with the keys, and not bother with switch. Then we do
> > not need to touch the atkbd driver at all and rely on udev to set up the
> > keymap and force release keys.
>
> The hole idea of doing those patches is to have an userspace tool that will
> be able to show software LEDs, like mate-applet-lockeys, that will query
> the input driver to know the current status. So, the better is to keep
> control of it as soon as kernel starts controlling the Keyboard, as,
> otherwise, the software LED indicators may be wrong.
>
> If you think that having both keycodes and a switch is an overkill, then
> the better is to just keep the switch.
After thinking for a little bit, I can see a few alternatives:
1) add patch 3/5 and patch 4/5 as is. No need to apply patch 5/5. The
Fn Lock switch support will start work as soon as udev initializes the
keytables.
2) Add patches 3/5 and patch 4/5 as is, and patch 5/5 rebased, as:
http://git.infradead.org/users/mchehab/samsung.git/commitdiff/96171bbd42d8ab9dfc3f36e0d4796080a8989344
This way, all keyboards with FN LOCK will require a quirk at atkbd.
The key handling will only start after udev starts.
3) Modify patch 3/5 to only have there a switch (or a LED). That will
require a change at patch 5/5 to use the scancodes to handle the
switch directly.
IMHO, (3) is better, as it will start handling the FN LOCK earlier,
reducing the risk of someone press the key after keyboard reset and
before udev to load the keytable, and providing a more reliable
software LED indication.
Please let me know what works best for you, and I'll redo the patches.
Thanks!
Mauro
next prev parent reply other threads:[~2013-07-29 10:50 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-29 3:59 [PATCH 1/5] atkbd: Fix key release for Fn keys on Samsung series 5 ultra 540UC Mauro Carvalho Chehab
2013-07-29 3:59 ` [PATCH 2/5] atkbd: Fix key release for Fn keys on Samsung series 5 550P5C Mauro Carvalho Chehab
2013-07-29 4:49 ` Dmitry Torokhov
2013-07-29 3:59 ` [PATCH 3/5] input.h: add keycodes for Fn Lock Mauro Carvalho Chehab
2013-07-29 4:53 ` Dmitry Torokhov
2013-07-29 10:03 ` Mauro Carvalho Chehab
2013-07-29 10:50 ` Mauro Carvalho Chehab [this message]
2013-07-30 7:14 ` Dmitry Torokhov
2013-07-30 9:56 ` Mauro Carvalho Chehab
2013-07-29 3:59 ` [PATCH 4/5] atkbd: add support for handling KEY_FNLOCK Mauro Carvalho Chehab
2013-07-29 3:59 ` [PATCH 5/5] atkbd: only enable SW_FNLOCK on keyboards that have FN LOCK key Mauro Carvalho Chehab
2013-07-29 4:49 ` [PATCH 1/5] atkbd: Fix key release for Fn keys on Samsung series 5 ultra 540UC Dmitry Torokhov
2013-07-29 10:04 ` Mauro Carvalho Chehab
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=20130729075051.25b9e5b9@infradead.org \
--to=mchehab@infradead.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-input@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;
as well as URLs for NNTP newsgroup(s).