On Tue, Jun 28, 2016 at 08:49:22PM +0930, Jonathan Woithe wrote: > On Tue, Jun 28, 2016 at 09:25:50AM +0200, Micha?? K??pie?? wrote: > > Haswell-based Fujitsu laptops (Lifebook E734/E744/E754) have a touchpad > > toggle hotkey (Fn+F4) which is handled transparently to the operating > > system: while an ACPI notification is sent to FUJ02B1 when Fn+F4 is > > pressed, touchpad state is properly toggled without any explicit support > > for this operation in fujitsu-laptop. > > > > Skylake-based models (Lifebook E736/E746/E756) also have that hotkey, > > but the touchpad is not toggled transparently to the operating system. > > When Fn+F4 is pressed, an ACPI notification is sent to FUJ02E3. A > > subsequent call to S000 (FUNC_RFKILL) can be used to determine whether > > the touchpad toggle hotkey was pressed so that an input event can be > > sent to userspace. > > > > Relevant ACPI code: > > > > Method (_L21, 0, NotSerialized) > > { > > ... > > If (AHKF) > > { > > Notify (\_SB.FEXT, 0x80) > > } > > ... > > } > > > > Method (S000, 3, Serialized) > > { > > Name (_T_0, Zero) > > Local0 = Zero > > While (One) > > { > > _T_0 = Arg0 > > If (_T_0 == Zero) > > { > > Local0 |= 0x04000000 > > Local0 |= 0x02000000 > > Local0 |= 0x00020000 > > Local0 |= 0x0200 > > Local0 |= 0x0100 > > Local0 |= 0x20 > > } > > ElseIf (_T_0 == One) > > { > > ... > > If (AHKF & 0x08) > > { > > Local0 |= 0x04000000 > > AHKF ^= 0x08 > > } > > ... > > } ... > > Break > > } > > Return (Local0) > > } > > > > Pressing Fn+F4 raises GPE 0x21 and sets bit 3 in AHKF. This in turn > > results in bit 26 being set in the value returned by FUNC_RFKILL called > > with 1 as its first argument. On Skylake-based models, bit 26 is also > > set in the value returned by FUNC_RFKILL called with 0 as its first > > argument (this value is saved in fujitsu_hotkey->rfkill_supported upon > > module initialization), which suggests that this bit is set on models > > which do not handle touchpad toggling transparently to the operating > > system. > > > > Note that bit 3 is cleared in AHKF once FUNC_RFKILL is called with 1 as > > its first argument, which requires fujitsu-laptop to handle this hotkey > > in a different manner than the other, GIRB-based hotkeys: two input > > events (press and release) are immediately sent once Fn+F4 is pressed. > > > > Reported-and-tested-by: Jan-Marek Glogowski <glogow@xxxxxxxxxx> > > Signed-off-by: Micha?? K??pie?? <kernel@xxxxxxxxxx> > > Thanks for the revision and your patience. > > Acked-by: Jonathan Woithe <jwoithe@xxxxxxxxxx> Queued to testing for 4.8, thanks. -- Darren Hart Intel Open Source Technology Center -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html