Compaq/HP Presario R4000-Series volume keys stick - kernel quirk

Bug #385477 reported by jetdog on 2009-06-10
24
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Undecided
Unassigned
openSUSE
Fix Released
Medium
linux (Gentoo Linux)
Fix Released
Medium
linux (Ubuntu)
Medium
Andy Whitcroft

Bug Description

Kernel Input Driver doesn't release volume up/down in main linux kernel, as well as ubuntu's kernel (stable or testing).

Pressing a volume up causes volume to go all the way up. Pressing a volume down causes volume to go all the way down. Keyboard is then unresponsive. (The usual!)

This issue also exists in gentoo's kernel, and also likely fedora.

The following is the showkey log from outside of xdm:

keycode 114 press (Volume Down Press and Release)
keycode 115 press (Volume Up Press and Release)

Here is the same thing with showkey -s - this time with some pressing and releasing.
0xe0 0x2e
0xe0 0x2e
0xe0 0x2e
0xe0 0x2e 0xe0 0x2e 0xe0 0x2e 0xe0 0x2e 0xe0 0x2e 0xe0 0x2e 0xe0 0x2e 0xe0 0x2e 0xe0 0x2e
0xe0 0x2e 0xe0 0x2e 0xe0 0x2e
0xe0 0x30
0xe0 0x30
0xe0 0x30
0xe0 0x30 0xe0 0x30 0xe0 0x30 0xe0 0x30 0xe0 0x30 0xe0 0x30 0xe0 0x30 0xe0 0x30 0xe0 0x30
0xe0 0x30 0xe0 0x30 0xe0 0x30

Basically a release is never generated for the volume keys. Fortunately, half a fix was already generated, so, I copied some of it:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/291878

The zv6100 has 99% the same internals as the r4100 series - and I have serviced both series as evidence of this.

Also, the scancodes that get stuck are the same:
0xae , 0xb0

So, I wrote a quirk to fix this for the kernel keyboard driver. Patch attached.

This patch is for gentoo's 2.6.29-gentoo-r5 kernel - but I have tested this with ubuntu's livecd, and have confirmed that this issue is present Ubuntu's tree as well - and probably all distributions. I have no idea who to contact from here - should I call Linus to get him to add this? xD

jetdog (slicksterdave) wrote :
jetdog (slicksterdave) on 2009-06-10
Changed in linux (Gentoo Linux):
importance: Undecided → Unknown
status: New → Unknown
Changed in linux (Gentoo Linux):
status: Unknown → Confirmed
jetdog (slicksterdave) on 2009-06-10
Changed in linux (Ubuntu):
status: New → In Progress
Jonathan Thurn (jthurn) wrote :

I notice the patch is explicitly labeled for the R4100, but I'm sure there are others that have the same volume key behavior (at least my R4000 does, down to the reported showkey codes). Would it be more prudent to include a larger swath of this laptop's various model (the entire R4000 series) in the patch?

jetdog (slicksterdave) wrote :

This patch addresses an issue in the r4100 series - mine particularly is the R4125CA.

If there are more in the R4000 series this could very well apply as well. Though, i need to make sure the quirk is the same with the following information:

Can you post the output of the following from outside of X (i.e. no gui)

# scankey -s > mykeylog.txt
on keyboard, press volume down a few times, then press volume up (-- then wait for 10 seconds to make the program exit, since ctrl-c is deactivated while it runs)

We may also need the output of dmidecode, so that we can properly identify your hardware, to identify it to the kernel. You can run this safely in or out of X.

# dmidecode > dmi_log.txt

this program is available from sys-apps/dmidecode .

I can then add a few lines to also include the first R4000 series (i.e. >= R4000, <=R4099 )

Thanks for the help :)

jetdog (slicksterdave) wrote :

whoops, my apologies... for a moment i thought this was the gentoo board :P

Forget everything above ( i had a mistake anyways ), and do this as root instead. It shouldn't matter if you're in or our of X, but if you know how to boot outside of X, it will be less aggravating for you:

(Also, if you're doing this within gnome/kde, i suggest you save and close any of your work, b/c these symptoms for the volume buttons may cause problems for your keyboard/mouse input during this session)

# su -c "showkey -s > mykeylog.txt"

(press volume -down- a few times, and then volume -up- a few times -- wait for 10 seconds and showkey will exit automatically, b/c "ctrl-c" is disabled during its' execution)

(after it exits, and if you're in X (GUI) at the moment, your keyboard/mouse MAY be locked up from auto-repeat on the volume, as described in the symptoms -- not to worry, ctrl-alt-backspace will restart X. You can then proceed.)

# dmidecode > dmi_log.txt

That one is a piece of cake.

I need you to upload both logs, so that it is confirmed, and so I can adapt the patch.

Thanks for your help - I guess I wasn't the only one feeling lonely with my volume buttons =D

jetdog (slicksterdave) wrote :

Also, you may have to run dmidecode as root as well... so try adjusting it as follows:

su -c "dmidecode > dmi_log.txt"

Jonathan Thurn (jthurn) wrote :

@jetdog:

Thanks for considering enlarging the laptop model scope this patch would address. I've attached the showkey output (first some VOLUME_DOWN then VOLUME_UP and for good measure I've added a few VOLUME_MUTE at the end.

One note about the way default Ubuntu installs work for when you're helping others. Ubuntu considers root a system account only and suggests that users needing root access use sudo instead, making sure that they are added to the "wheel" or "sudoers" group (or I think they've changed it to "admin" now).

Jonathan Thurn (jthurn) wrote :

@jetdog:

dmidecode log attached (minus required redactions).

jetdog (slicksterdave) wrote :

@Jonathan Thurn

Excellent, thank you for the information.

I can tell by the showkey logs that the R4000 was suffering from the exact keyboard quirk as the R4100.

The information you have provided was used to form this combined patch (R4000.patch).

We'll kill two birds with one stone :)

(This patch is for the linux-2.6.29 mainline kernel)

kernel-janitor (kernel-janitor) wrote :

Hi jetdog,

Thanks for the report and writing a patch, that's awesome. Unfortunately the patch won't apply cleanly to the upcoming Karmic kernel - http://kernel.ubuntu.com/git?p=ubuntu/ubuntu-karmic.git;a=summary . The kernel for Karmic is going to target the 2.6.31 kernel and it seems the driver has already changed since you patched it for 2.6.29.

Also, the Ubuntu kernel team policy typically requires that patches be submitted and accepted upstream first before pulling them into the Ubuntu kernel. Maintaining out of tree patches creates a lot of extra work for the team and is also generally frowned upon if the patch is acceptable for going upstream first. With that said, care to update the patch you have to be against the latest linux-input kernel tree and submit upstream? There should be plenty of time for this to get merged into 2.6.31 and then the Karmic kernel will get it automatically. I pulled the following information from the MAINTAINERS file which contains information for who and which mailing list the patch should be submitted to as well at the git tree which should be used for generating the patch. Thanks.

INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
P: Dmitry Torokhov
M: <email address hidden>
M: <email address hidden>
L: <email address hidden>
T: git git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git
S: Maintained
F: drivers/input/

jetdog (slicksterdave) wrote :

We have received a report that the R4200 may also be affected. Anybody with this laptop who is experiencing volume keys "sticking"/endlessly-repeating in Ubuntu is highly encouraged to submit a response.

Or, if your laptop exhibits these symptoms, and is an HP/Compaq R4000-series, I would like a response as well. We need to know how far this problem extends, before we submit a patch to mainline.

summary: - Compaq/HP Presario R4100 volume keys stick - kernel quirk
+ Compaq/HP Presario R4000-Series volume keys stick - kernel quirk
Changed in opensuse:
status: Unknown → Confirmed
jetdog (slicksterdave) on 2009-06-12
Changed in linux (Ubuntu):
status: In Progress → Confirmed
jetdog (slicksterdave) wrote :

Updating patch to 2.6.31

Changed in linux (Ubuntu):
assignee: nobody → jetdog (slicksterdave)
status: Confirmed → In Progress
jetdog (slicksterdave) wrote :

Fix created for 2.6.31 compatibility (looks like they were trying to consolidate all these multimedia quirks! *bad compaq .. hurray standards!* xD )

I have assumed that the Compaq Presario R4200 is also affected by this bug - so this version of the patch includes:

Compaq Presario R4000 - R4099
Compaq Presario R4100 - R4199
Compaq Presario R4200 - R4299

In the interest in being correct, we will wait for some replies on the R4200, as I have left a paper trail all over the internet for anybody who may have one.

You may safely test this patch on a 2.6.31 kernel, though I would much appreciate it if anybody in any flavour of linux, with access to testing 2.6.31, had an Compaq (HP) Presario R4200.

I will contact upstream shortly.

yodaanneaux (romain-yoda) wrote :

Hi,
this fix can run with Ubuntu?
Thank you for this fix!

Andy Whitcroft (apw) wrote :

As this affects a subset of machines it would normally be low, but as the machine becomes unresponsive it seems reasonable to be a medium severity bug.

Changed in linux (Ubuntu):
importance: Undecided → Medium
yodaanneaux (romain-yoda) wrote :

"yodaanneaux wrote on 2009-06-17: (permalink)

Hi,
this fix can run with Ubuntu?
Thank you for this fix!"

sorry bad question^^

Andy Whitcroft (apw) wrote :

Ok I have produced some test kernels with this patch applied. These are karmic kernels, but should be usable with the Jaunty release if you boot with i915.modeset=0. If those of you who are able could test these kernels and report back here. Kernels are available at the URL below:

     http://people.ubuntu.com/~apw/lp385477-karmic/

Changed in linux (Ubuntu):
assignee: jetdog (slicksterdave) → Andy Whitcroft (apw)
status: In Progress → Incomplete
Andy Whitcroft (apw) on 2009-07-21
Changed in linux (Ubuntu):
status: Incomplete → In Progress
Andy Whitcroft (apw) wrote :

Ok as there was no feedback on that last test kernel here is a test kernel for Jaunty. If you could test this and report back here that would help. Kernels are at the URL below:

    http://people.canonical.com/~apw//lp385477-jaunty/

Changed in linux (Ubuntu):
status: In Progress → Incomplete
coolzire (olev999) wrote :

Jetdog, I have a Compact Presario R4225.

coolzire (olev999) wrote :

I just installed test kernel from http://people.canonical.com/~apw//lp385477-jaunty/ and the vol + , vol - , mute keys seem to work properly on my compaq presario 4225.

yodaanneaux (romain-yoda) wrote :

Hi i just installed linux-image-2.6.28-14-generic_2.6.28-14.47~lp385477apw1_i386.deb from http://people.canonical.com/~apw//lp385477-jaunty/ on my laptop and after reboot it works!!!
Thank you so much!!!
yodaanneaux

yodaanneaux (romain-yoda) wrote :

I've Compaq Presario R4015

Changed in opensuse:
status: Confirmed → Incomplete
jetdog (slicksterdave) wrote :

Just to keep others updated: This patch has been signed and is undergoing testing in the upcoming Linux kernel 2.6.31 release.

The kernel input driver maintainer has it from here.

This fix will likely appear upstream in the official Linux Kernel 2.6.31 release, which will be featured in Ubuntu 9.10.

Thank you for your help everybody :)

Changed in linux:
status: New → In Progress
yodaanneaux (romain-yoda) wrote :

Great!

jetdog (slicksterdave) on 2009-09-10
Changed in linux:
status: In Progress → Fix Released
Changed in linux (Ubuntu):
status: Incomplete → Fix Released
Changed in linux (Gentoo Linux):
status: Confirmed → Fix Released
Changed in opensuse:
status: Incomplete → In Progress
jetdog (slicksterdave) on 2009-09-10
Changed in opensuse:
status: In Progress → Fix Released
Changed in opensuse:
status: Fix Released → Incomplete
Changed in linux (Gentoo Linux):
status: Fix Released → Invalid
jetdog (slicksterdave) on 2009-09-14
Changed in linux (Gentoo Linux):
status: Invalid → Fix Released
Changed in opensuse:
status: Incomplete → Fix Released
caf' (ptitwilly) wrote :

Hi, I have made a small package for use Hotkeys on my R4000 laptop.
Tested on Debian Lenny, Squeeze and Ubuntu Karmic.

Changed in linux (Gentoo Linux):
importance: Unknown → Medium
Changed in opensuse:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.