#include <linux/hid.h>
#include <linux/hid-debug.h>
#include <linux/input.h>
#include "hid-ids.h"
#include <linux/fb.h>
#include <linux/vmalloc.h>
#include <linux/completion.h>
#include <linux/uaccess.h>
#include <linux/module.h>
#include <linux/string.h>
#include "hid-picolcd.h"
static const unsigned short def_keymap[PICOLCD_KEYS] = …;
struct hid_report *picolcd_report(int id, struct hid_device *hdev, int dir)
{ … }
struct picolcd_pending *picolcd_send_and_wait(struct hid_device *hdev,
int report_id, const u8 *raw_data, int size)
{ … }
static int picolcd_raw_keypad(struct picolcd_data *data,
struct hid_report *report, u8 *raw_data, int size)
{ … }
static int picolcd_check_version(struct hid_device *hdev)
{ … }
int picolcd_reset(struct hid_device *hdev)
{ … }
static ssize_t picolcd_operation_mode_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t picolcd_operation_mode_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{ … }
static DEVICE_ATTR(operation_mode, 0644, picolcd_operation_mode_show,
picolcd_operation_mode_store);
static ssize_t picolcd_operation_mode_delay_show(struct device *dev,
struct device_attribute *attr, char *buf)
{ … }
static ssize_t picolcd_operation_mode_delay_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{ … }
static DEVICE_ATTR(operation_mode_delay, 0644, picolcd_operation_mode_delay_show,
picolcd_operation_mode_delay_store);
static int picolcd_raw_event(struct hid_device *hdev,
struct hid_report *report, u8 *raw_data, int size)
{ … }
#ifdef CONFIG_PM
static int picolcd_suspend(struct hid_device *hdev, pm_message_t message)
{ … }
static int picolcd_resume(struct hid_device *hdev)
{ … }
static int picolcd_reset_resume(struct hid_device *hdev)
{ … }
#endif
static int picolcd_init_keys(struct picolcd_data *data,
struct hid_report *report)
{ … }
static void picolcd_exit_keys(struct picolcd_data *data)
{ … }
static int picolcd_probe_lcd(struct hid_device *hdev, struct picolcd_data *data)
{ … }
static int picolcd_probe_bootloader(struct hid_device *hdev, struct picolcd_data *data)
{ … }
static int picolcd_probe(struct hid_device *hdev,
const struct hid_device_id *id)
{ … }
static void picolcd_remove(struct hid_device *hdev)
{ … }
static const struct hid_device_id picolcd_devices[] = …;
MODULE_DEVICE_TABLE(hid, picolcd_devices);
static struct hid_driver picolcd_driver = …;
module_hid_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;