You are not logged in.
Hello guys!
My laptop (Lenovo Ideapad z580) has Fn+F6 combo to disable touchpad. It works till I suspend my laptop.
After resume the touchpad works irrespective of whether it was disabled before suspend and Fn+F6 simply stops working.
1. I have found that the problem is reproducible with several distributions, indicating the bug might be in the upstream code.
2. When Fn+F6 works, this is the output from xbindkeys:
$ xbindkeys -mk
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
--- Press "q" to stop. ---
"(Scheme function)"
m:0x0 + c:201
XF86TouchpadOff
"(Scheme function)"
m:0x0 + c:200
XF86TouchpadOn
"(Scheme function)"
m:0x0 + c:201
XF86TouchpadOff
"(Scheme function)"
m:0x0 + c:200
XF86TouchpadOn
3. After resuming from suspend xbindkeys does not report any keypresses when I press Fn+F6.
$ xbindkeys -mk
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
--- Press "q" to stop. ---
Last edited by akash_rawal (2016-01-28 08:54:42)
Offline
What make and model laptop is it?
Does your laptop have a wmi module? Look at lsmod | grep wmi
Last edited by ewaller (2016-01-16 16:20:28)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
$ lsmod | grep wmi
wmi 20480 0
Offline
No there is no wmi module for my laptop.
There is however an ideapad-laptop module that apparently uses ACPI but not wmi. Unloading the module causes no output from xbindkeys but Fn+F6 functionality is unaffected.
Offline
Some more findings.
In source code for ideapad-laptop module:
static void ideapad_sync_touchpad_state(struct ideapad_private *priv)
{
unsigned long value;
/* Without reading from EC touchpad LED doesn't switch state */
if (!read_ec_data(priv->adev->handle, VPCCMD_R_TOUCHPAD, &value)) {
/* Some IdeaPads don't really turn off touchpad - they only
* switch the LED state. We (de)activate KBC AUX port to turn
* touchpad off and on. We send KEY_TOUCHPAD_OFF and
* KEY_TOUCHPAD_ON to not to get out of sync with LED */
unsigned char param;
i8042_command(¶m, value ? I8042_CMD_AUX_ENABLE :
I8042_CMD_AUX_DISABLE);
ideapad_input_report(priv, value ? 67 : 66);
}
}
Going by the code and the fact that unloading ideapad-laptop module has no effect on disabling touchpad, Fn+F6 works somewhere within ACPI related code.
Offline
Try using boot parameter
acpi_osi="!Windows 2012"
Offline