Hi Dmitry, On Friday 16 May 2008 22:38:07 Dmitry Torokhov wrote: > Hi Bruno, > > On Fri, May 16, 2008 at 10:25:43PM +0200, Bruno Pr?mont wrote: > > On my Acer TravelMate 660 I lose keycodes for the extra keys (dritek > > extensions) after resume. > > > > The system runs setkeycodes during boot sequence to initialize key codes > > for the extra keys as below: > > > > /usr/bin/setkeycodes KEYCODES="e025 138 e026 141 e027 171 e074 148 e073 149 e055 229 e056 230 e057 227 e058 228" > > # Fn + F1 ~ e025 => 138 [KEY_HELP] (Help) > > # Fn + F2 ~ e026 => 141 [KEY_SETUP] (Notebook Manager) > > # Fn + F3 ~ e027 => 171 [KEY_CONFIG] (Power Options) > > # Mail ~ e06c => 155 [KEY_MAIL] (EMail) > > # WWW ~ e032 => 150 [KEY_WWW] (Browser) > > # P1 ~ e074 => 148 [KEY_PROG1] (P1) > > # P2 ~ e073 => 149 [KEY_PROG2] (P2) > > # Bluetooth ~ e058 => 228 [KEY_BLUETOOTH_DISABLE] (Disable Bluetooth) > > # Bluetooth ~ e057 => 227 [KEY_BLUETOOTH_ENABLE] (Enable Bluetooth) > > # Wireless ~ e056 => 230 [KEY_WLAN_DISABLE] (Disable WLAN) > > # Wireless ~ e055 => 229 [KEY_WLAN_ENABLE] (Enable WLAN) > > # Vol UP ~ e030 => 115 [KEY_VOLUMEUP] (Increase Volume) > > # Vol DOWN ~ e02e => 114 [KEY_VOLUMEDOWN] (Decrease Volume) > > # Vol Mute ~ e020 => 113 [KEY_MUTE] (Mute volume) > > > > After resume I end up with the following messages when pressing the keys: > > [ 779.695675] atkbd.c: Unknown key pressed (translated set 2, code 0xd6 on isa0060/serio0). > > [ 779.695675] atkbd.c: Use 'setkeycodes e056 ' to make it known. > > [ 779.705218] atkbd.c: Unknown key released (translated set 2, code 0xd6 on isa0060/serio0). > > [ 779.705218] atkbd.c: Use 'setkeycodes e056 ' to make it known. > > [ 781.603912] atkbd.c: Unknown key pressed (translated set 2, code 0xd5 on isa0060/serio0). > > [ 781.603912] atkbd.c: Use 'setkeycodes e055 ' to make it known. > > [ 781.613564] atkbd.c: Unknown key released (translated set 2, code 0xd5 on isa0060/serio0). > > [ 781.613564] atkbd.c: Use 'setkeycodes e055 ' to make it known. > > [ 782.772662] atkbd.c: Unknown key pressed (translated set 2, code 0xd7 on isa0060/serio0). > > [ 782.772662] atkbd.c: Use 'setkeycodes e057 ' to make it known. > > [ 782.782390] atkbd.c: Unknown key released (translated set 2, code 0xd7 on isa0060/serio0). > > [ 782.782390] atkbd.c: Use 'setkeycodes e057 ' to make it known. > > [ 783.461807] atkbd.c: Unknown key pressed (translated set 2, code 0xd8 on isa0060/serio0). > > [ 783.461807] atkbd.c: Use 'setkeycodes e058 ' to make it known. > > [ 783.471544] atkbd.c: Unknown key released (translated set 2, code 0xd8 on isa0060/serio0). > > [ 783.471544] atkbd.c: Use 'setkeycodes e058 ' to make it known. > > > > > > Is this kind of issue known, what are the options to get kernel to > > remember the keycode mappings after s2ram? > > Do you unload atkbd or perhaps i8042 for s2ram? Or do you see that > keyboard is detected again (in dmesg) after resume? I don't see anything in the logs that would allow to assume this. Most is built right into the kernel. Modules that were loaded for suspend/resume process (USB unloaded before trying to suspend, alsa also stopped): Module Size Used by pcspkr 2176 0 sunrpc 159996 17 nfs,lockd,nfs_acl 8021q 17096 0 xfs 498804 4 nsc_ircc 14480 0 irda 102584 1 nsc_ircc crc_ccitt 1792 1 irda b44 22224 0 ssb 25796 1 b44 i2c_i801 8592 0 evdev 8448 1 usbcore 123952 1 Modules I loaded back later after resume: nfs 123180 4 lockd 59208 2 nfs nfs_acl 2688 1 nfs squashfs 38408 1 zlib_inflate 14720 1 squashfs loop 12932 8 snd_pcm_oss 33888 0 snd_mixer_oss 13376 1 snd_pcm_oss snd_intel8x0 27932 3 snd_ac97_codec 95268 1 snd_intel8x0 ac97_bus 1536 1 snd_ac97_codec snd_pcm 56712 4 snd_pcm_oss,snd_intel8x0,snd_ac97_codec snd_timer 18052 2 snd_pcm snd 42980 10 snd_pcm_oss,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_pcm,snd_timer snd_page_alloc 7560 2 snd_intel8x0,snd_pcm Note: the kernel is patched with the two patches I've just sent regarding dritek quirk (needed to get any response to they key presses) Note: suspend/resume is not very stable on this laptop as visible in attached dmesg output) Bruno