All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Vodopjan <adam.vodopjan@gmail.com>
To: linux-leds@vger.kernel.org
Subject: Bug report for input-leds driver
Date: Sun, 11 Dec 2022 12:12:28 +0200	[thread overview]
Message-ID: <303d60df-e72d-5d41-da49-84f43f9a4063@gmail.com> (raw)

Speaking about laptop Acer 5920G and its numlock led. The keyboard lacks a
numpad, instead a block of keys acts as a numpad if I press Fn+NumLk.

The problem in short is when I set /sys/class/leds/input4::numlock/trigger
to some hardware activity like "disk-read" each time the led is ON the
keyboard behaves weird.

To make everything clear let me introduce some modes keyboards work in
related to numlock status:

- numpad_decicated_off: keyboard has a dedicated numpad and numlock is
OFF. The numpad emits arrows, page up/down etc

- numpad_dedicated_on: keyboard has a dedicated numpad and numlock is ON.
The numpad emits numbers

- numpad_overlay_off: there is no dedicated numpad, but some keys
optionally emit numbers, and numlock if OFF. "Overlay" keys emit "normal"
keypresses

- numpad_overlay_on: there is no dedicated numpad, but some keys
optionally emit numbers, and numlock if ON. "Overlay" keys emit numbers

For my laptop I expect modes numpad_overlay_off and numpad_overlay_on to
be only available.

Numlock led is available at /sys/class/leds/input4::numlock. I wanted to
repurpose it. So with the trigger value set to "phy0tpt" instead of
"kbd-numlock" it works as supposed for the led BUT it makes my keyboard
work in numpad_decicated_off mode when the led is ON. When the led is OFF
the keyboard is in mode numpad_overlay_off as it should be.

Here are the keypresses I get from the "overlay" keys.

- the trigger is set to "kbd-numlock", numlock is OFF. As expected, it is
numpad_overlay_off mode:

7 8 9 0
u i o p
j k l ;
m   . /

- the trigger is set to "kbd-numlock", numlock is ON. As expected, it is
numpad_overlay_on mode:

7 8 9 /
4 5 6 *
1 2 3 -
0   . +

Now, I have numlock OFF and set the trigger to "phy0tpt". Some ping runs
in background so the led blinks all the time.

- the led is OFF. As expected, it is numpad_overlay_off mode:

7 8 9 0
u i o p
j k l ;
m   . /

- the led is ON. Surprisingly, it is numpad_decicated_off mode instead of
numpad_overlay_off:

^[[H  ^[[A ^[[5~ /     =     Home Up   PgUp  /
^[[D  ^[[E ^[[C  *     =     Left ??   Right *
^[[F  ^[[B ^[[6~ -     =     End  Down PgDn  -
^[[2~      ^[[3~ +     =     Ins       Del   +

For example with some ping in background and the trigger set to "phy0tpt"
here is what I get clicking "p": p***pp***pp***pp**ppp***pppp**p

Mby it is worth to mention I tried such triggers: disk-activity disk-read
disk-write ide-disk phy0rx phy0tx phy0tpt. All of those demonstrate the
same behavior.

I tried different kernels starting from 4.2 (when input-leds was
introduced) up to 6.0.10. It is all the same.
From 
Message-ID: <fe3acb26-da86-6e03-d91a-27ebbfafe51e@gmail.com>
Date: Sun, 11 Dec 2022 12:11:06 +0200
MIME-Version: 1.0
From: Adam Vodopjan <adam.vodopjan@gmail.com>
Subject: Bug report

                 reply	other threads:[~2022-12-11 10:13 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=303d60df-e72d-5d41-da49-84f43f9a4063@gmail.com \
    --to=adam.vodopjan@gmail.com \
    --cc=linux-leds@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.