#include <linux/acpi.h>
#include <linux/device.h>
#include <linux/input.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/wmi.h>
#include <uapi/linux/input-event-codes.h>
#define XIAOMI_KEY_FN_ESC_0 …
#define XIAOMI_KEY_FN_ESC_1 …
#define XIAOMI_KEY_FN_FN …
#define XIAOMI_KEY_CAPSLOCK …
#define XIAOMI_KEY_FN_F7 …
#define XIAOMI_DEVICE(guid, key) …
struct xiaomi_wmi { … };
static void xiaomi_mutex_destroy(void *data)
{ … }
static int xiaomi_wmi_probe(struct wmi_device *wdev, const void *context)
{ … }
static void xiaomi_wmi_notify(struct wmi_device *wdev, union acpi_object *dummy)
{ … }
static const struct wmi_device_id xiaomi_wmi_id_table[] = …;
static struct wmi_driver xiaomi_wmi_driver = …;
module_wmi_driver(…) …;
MODULE_DEVICE_TABLE(wmi, xiaomi_wmi_id_table);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;