#define pr_fmt(fmt) …
#include <linux/kernel.h>
#include <linux/input.h>
#include <linux/input/sparse-keymap.h>
#include <linux/acpi.h>
#include <linux/backlight.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <acpi/video.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define DRV_NAME …
#define MSIWMI_BIOS_GUID …
#define MSIWMI_MSI_EVENT_GUID …
#define MSIWMI_WIND_EVENT_GUID …
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
MODULE_ALIAS(…) …;
enum msi_scancodes { … };
static struct key_entry msi_wmi_keymap[] = …;
static ktime_t last_pressed;
static const struct { … } *event_wmi, event_wmis[] = …;
static struct backlight_device *backlight;
static int backlight_map[] = …;
static struct input_dev *msi_wmi_input_dev;
static int msi_wmi_query_block(int instance, int *ret)
{ … }
static int msi_wmi_set_block(int instance, int value)
{ … }
static int bl_get(struct backlight_device *bd)
{ … }
static int bl_set_status(struct backlight_device *bd)
{ … }
static const struct backlight_ops msi_backlight_ops = …;
static void msi_wmi_notify(union acpi_object *obj, void *context)
{ … }
static int __init msi_wmi_backlight_setup(void)
{ … }
static int __init msi_wmi_input_setup(void)
{ … }
static int __init msi_wmi_init(void)
{ … }
static void __exit msi_wmi_exit(void)
{ … }
module_init(…) …;
module_exit(msi_wmi_exit);