#include <linux/acpi.h>
#include <linux/device.h>
#include <linux/input.h>
#include <linux/types.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/wmi.h>
#define WMI_LENOVO_CAMERABUTTON_EVENT_GUID …
struct lenovo_wmi_priv { … };
enum { … };
static void lenovo_wmi_notify(struct wmi_device *wdev, union acpi_object *obj)
{ … }
static int lenovo_wmi_probe(struct wmi_device *wdev, const void *context)
{ … }
static void lenovo_wmi_remove(struct wmi_device *wdev)
{ … }
static const struct wmi_device_id lenovo_wmi_id_table[] = …;
MODULE_DEVICE_TABLE(wmi, lenovo_wmi_id_table);
static struct wmi_driver lenovo_wmi_driver = …;
module_wmi_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;