Re: BUG: Fn keys not working on EliteBook 8460p after fabf85e3ca15d5b94058f391dac8df870cdd427a

From: Kyle Evans
Date: Thu Apr 18 2013 - 09:55:26 EST



On 04/17/2013 01:59 PM, Matthew Garrett wrote:
On Wed, 2013-04-17 at 11:37 -0400, Kyle Evans wrote:
On 04/16/2013 12:26 PM, Matthew Garrett wrote:
Can you try this patch?

No dice. I have a dmi check patch that I will send in a day or two if
you don't find what you are looking for.
DMI's almost certainly the wrong solution. According to your DSDT, EC
register 0xe6 is called SFHK. That's written to by the SSHK method,
which in turn is executed by SHKS which should be called by the
hp_wmi_query call added there. Any chance you can try to figure out why
that's not happening?


I am not fully understanding how the bios query ID gets translated into the method. As far as I can tell this happens under HWMC. But, if I trace through that, 0x8(write) and 0x9(read) do not exist. However, 0x9(read) does have a method that works when I query it, GHKS. I do not find the method for 0x8(write).

0x9(write), or SHKS, is essentially ec_write(SFHK,Arg0). Arg0 turns out to be whatever data is sent in the 0x9 buffer.
...
CreateDWordField (Arg1, 0x10, DDWD)

If (LEqual (CMDT, 0x09))
{
Store (SHKS (DDWD), Local2)
...

I tried writing 0x60, and I tried writing 0x0e just to see if it if a subset of that register is needed to enable the keys and it seems I need the full 0x6e. I only find two places in the DSDT with that value, both in the WQAE buffer and I can't see how that is used.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/