mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
HID: asus: Add WMI communication infrastructure
Add infrastructure for the HID driver to communicate with the asus-wmi driver for handling special keys that require WMI communication. This includes: - Define ASUS_WMI_METHODID_NOTIF method ID in asus-wmi.h - Implement asus_wmi_send_event() function to send events to asus-wmi Reviewed-by: Denis Benato <benato.denis96@gmail.com> Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org> Signed-off-by: Ionut Nechita <ionut_n2001@yahoo.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
This commit is contained in:
parent
7fe565fb83
commit
c888d0bd05
|
|
@ -23,6 +23,7 @@
|
|||
/*
|
||||
*/
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/hid.h>
|
||||
#include <linux/module.h>
|
||||
|
|
@ -320,6 +321,29 @@ static int asus_e1239t_event(struct asus_drvdata *drvdat, u8 *data, int size)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Send events to asus-wmi driver for handling special keys
|
||||
*/
|
||||
static int asus_wmi_send_event(struct asus_drvdata *drvdata, u8 code)
|
||||
{
|
||||
int err;
|
||||
u32 retval;
|
||||
|
||||
err = asus_wmi_evaluate_method(ASUS_WMI_METHODID_DEVS,
|
||||
ASUS_WMI_METHODID_NOTIF, code, &retval);
|
||||
if (err) {
|
||||
pr_warn("Failed to notify asus-wmi: %d\n", err);
|
||||
return err;
|
||||
}
|
||||
|
||||
if (retval != 0) {
|
||||
pr_warn("Failed to notify asus-wmi (retval): 0x%x\n", retval);
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int asus_event(struct hid_device *hdev, struct hid_field *field,
|
||||
struct hid_usage *usage, __s32 value)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#define ASUS_WMI_METHODID_KBFT 0x5446424B /* KeyBoard FilTer */
|
||||
#define ASUS_WMI_METHODID_INIT 0x54494E49 /* INITialize */
|
||||
#define ASUS_WMI_METHODID_HKEY 0x59454B48 /* Hot KEY ?? */
|
||||
#define ASUS_WMI_METHODID_NOTIF 0x00100021 /* Notify method */
|
||||
|
||||
#define ASUS_WMI_UNSUPPORTED_METHOD 0xFFFFFFFE
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user