Skip to contentSkip to conversation

Media keys on MSI GE60 (patching msi_wmi for it)

RFC Vadim A. Misbakh-Soloviov 1 participant 1 message Jul 4, 2014 ACPI

lore
Share & tools
lore
#0 lore raw

Hi there!

I'm trying to modify msi_wmi driver to get it work with mediakeys on my MSI GE60 laptop.

By default, I get "Unknown event received" message.

For now, I diagnosed that event, that every key press produces has 0x03 ( ACPI_TYPE_BUFFER?) type, instead of 0x01 (ACPI_TYPE_INTEGER) which in-kernel msi_wmi module wants.

Further diagnostic with that code:

232 ›   } else if (obj && obj->type == ACPI_TYPE_BUFFER) {
233 ›   ›   int eventcode = obj->integer.value;
234 ›   ›   pr_info("Eventcode: 0x%x\n", eventcode);
235 ›   ›   key = sparse_keymap_entry_from_scancode(msi_wmi_input_dev,
236 ›   ›   ›   ›   eventcode);
237 ›   ›   if (!key) {
238 ›   ›   ›   pr_info("Unknown key pressed - %x\n", eventcode);
239 ›   ›   ›   goto msi_wmi_notify_exit;
240 ›   ›   }
241
242 ›   ›   pr_info("%d\n",key->type);
243 ›   } else
244 ›   ›   pr_info("Unknown event received\n");

(only patched part)
Gives me following info:
Wen I press on any of media-keys — I get the same eventcode (and every time I get if(!key) error. Moreover, evencode value changes in time (something about 4 seconds), so, if I'll press some key many times, eventcode value will be changed after 4s, but it will not change if I press another mediakeys.

Can anybody advice me, why can I experience such behaviour?

And is it a way to get mediakeys working without patching DSDT (last time I did that I brake my bluetooth module in that way, that even rfkill was unable to enable it :P)?

Signature · 2 lines
Best regsrds,
mva

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel