Contribute
Register

[Solved] HP Elite X2 - Hardware Volume Keys

Status
Not open for further replies.
Ok, turns out that both the volume up key and the volume down key run through both _Q30 *and* _Q31 methods :-/

The volume up/down keys on the keyboard send e030=48 for volume up and e02e=49 for volume down.

This SSDT seems to be specifically for the hard keys on the device. The power button is also adjacent the volume hard keys and I suspect that there's some condition in the SSDT that decides what was pressed and how to respond, but it isn't clear to me what is what.

It seems like the HID0 device is what eventually is passed a value - either 0xC2,0xC4,0xC6, or 0xC8 from _Q30 OR 0xC3, 0xC5, 0xC7, or 0xC9 from _Q31, but I'm lost on how to parlay that into something that responds to the current controls.

Would you mind taking a look at the methods in the SSDT when you have a minute? Thx.

Er...the HIDD device, that is....
 

Attachments

  • SSDT-16.dsl.zip
    3.3 KB · Views: 71
Last edited:
Ok, I think I'm starting to understand a little more here - it seems to me that _Q30 is a button press event and _Q31 is a button release event.

Edit - seems that 0xC0, 0xC1 is the power button.

I think I see what I need to do -- apply the old method of '0x0205' in _Q30 and '0x0285' in _Q31 as a break event. Now my question is can somebody help me understand the relationship between the PS2 codes and what hex equivalent I should be passing in the ACPI? How is it that e005 = 0x0205, etc.
 
Last edited:
Solved. I don't know of anyone else using this device, but to get working volume hard keys, add an external declaration to PS2K and then under _Q30 add - volume up

If (\_SB.PCI0.LPCB.EC0.GBNT (\_SB.PCI0.LPCB.EC0.VBPS, 0x02))
{
Notify (\_SB.PCI0.LPCB.PS2K, 0x0430)

and volume down -

If (\_SB.PCI0.LPCB.EC0.GBNT (\_SB.PCI0.LPCB.EC0.VBPS, 0x03))
{
Notify (\_SB.PCI0.LPCB.PS2K, 0x042E)
 
Status
Not open for further replies.
Back
Top