#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/leds.h>
#include <linux/input.h>
#if IS_ENABLED(CONFIG_VT)
#define VT_TRIGGER(_name) …
#else
#define VT_TRIGGER …
#endif
#if IS_ENABLED(CONFIG_SND_CTL_LED)
#define AUDIO_TRIGGER(_name) …
#else
#define AUDIO_TRIGGER …
#endif
static const struct { … } input_led_info[LED_CNT] = …;
struct input_led { … };
struct input_leds { … };
static enum led_brightness input_leds_brightness_get(struct led_classdev *cdev)
{ … }
static void input_leds_brightness_set(struct led_classdev *cdev,
enum led_brightness brightness)
{ … }
static void input_leds_event(struct input_handle *handle, unsigned int type,
unsigned int code, int value)
{ … }
static int input_leds_get_count(struct input_dev *dev)
{ … }
static int input_leds_connect(struct input_handler *handler,
struct input_dev *dev,
const struct input_device_id *id)
{ … }
static void input_leds_disconnect(struct input_handle *handle)
{ … }
static const struct input_device_id input_leds_ids[] = …;
MODULE_DEVICE_TABLE(input, input_leds_ids);
static struct input_handler input_leds_handler = …;
static int __init input_leds_init(void)
{ … }
module_init(…) …;
static void __exit input_leds_exit(void)
{ … }
module_exit(input_leds_exit);
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;