Summary: | Keyboard not working after resume: device key_bitmask has changed | ||
---|---|---|---|
Product: | xorg | Reporter: | Eric Piel <e.a.b.piel> |
Component: | Input/evdev | Assignee: | Peter Hutterer <peter.hutterer> |
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | normal | ||
Priority: | medium | ||
Version: | 7.4 (2008.09) | ||
Hardware: | All | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Eric Piel
2009-10-23 01:45:15 UTC
Actually I was wrong, when X starts the keymap is different, and looks like this: I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 N: Name="AT Translated Set 2 keyboard" P: Phys=isa0060/serio0/input0 S: Sysfs=/devices/platform/i8042/serio0/input/input4 U: Uniq= H: Handlers=kbd event4 evbug B: EV=120013 B: KEY=20000 20000000020 0 0 500f02100003 3803078f900d401 feffffdfffefffff ffffffffffffffff B: MSC=10 B: LED=7 A few seconds later, an init script changes the keymap (using setkeycodes). All goes fine... until the laptop is suspended to ram. At resume suddenly evdev decides to rescan every device and the keymap being different, it disable the keyboard. So it seems the problem is that evdev thinks a different keymap should lead to disabling the device. What is the goal of this? Is it because evdev should detect it as a new device and reinitialize everything? Dmitry Torokhov (maintainer of the input subsystem in the Linux kernel) says that a new device will always have a different path name (inputX) so checking this path should be sufficient to detect if a device is new or not. commit a0f7f34dc5effc5822c618bfbf3a0872669c30ad Author: Dmitry Torokhov <dmitry.torokhov@gmail.com> AuthorDate: Mon Nov 2 23:11:55 2009 -0800 Relax checks when reopening devices |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.