You are not logged in.

#1 2016-01-16 13:55:57

akash_rawal
Member
Registered: 2016-01-15
Posts: 8

(Lenovo Ideapad Z580) Fn+F6 won't disable touchpad after suspend

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

#2 2016-01-16 16:19:58

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,739

Re: (Lenovo Ideapad Z580) Fn+F6 won't disable touchpad after suspend

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

#3 2016-01-16 19:11:15

akash_rawal
Member
Registered: 2016-01-15
Posts: 8

Re: (Lenovo Ideapad Z580) Fn+F6 won't disable touchpad after suspend

$ lsmod | grep wmi
wmi                    20480  0

Offline

#4 2016-01-18 13:12:55

akash_rawal
Member
Registered: 2016-01-15
Posts: 8

Re: (Lenovo Ideapad Z580) Fn+F6 won't disable touchpad after suspend

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

#5 2016-01-28 08:57:30

akash_rawal
Member
Registered: 2016-01-15
Posts: 8

Re: (Lenovo Ideapad Z580) Fn+F6 won't disable touchpad after suspend

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(&param, 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

#6 2016-06-12 21:02:22

Nekroman
Member
Registered: 2011-10-02
Posts: 51

Re: (Lenovo Ideapad Z580) Fn+F6 won't disable touchpad after suspend

Try using boot parameter

acpi_osi="!Windows 2012"

Offline

Board footer

Powered by FluxBB