#include <linux/device.h>
#include <linux/hid.h>
#include <linux/module.h>
#include "hid-ids.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static const unsigned short creative_sb0540_key_table[] = …;
static const unsigned short creative_sb0540_codes[] = …;
struct creative_sb0540 { … };
static inline u64 reverse(u64 data, int bits)
{ … }
static int get_key(struct creative_sb0540 *creative_sb0540, u64 keycode)
{ … }
static int creative_sb0540_raw_event(struct hid_device *hid,
struct hid_report *report, u8 *data, int len)
{ … }
static int creative_sb0540_input_configured(struct hid_device *hid,
struct hid_input *hidinput)
{ … }
static int creative_sb0540_input_mapping(struct hid_device *hid,
struct hid_input *hi, struct hid_field *field,
struct hid_usage *usage, unsigned long **bit, int *max)
{ … }
static int creative_sb0540_probe(struct hid_device *hid,
const struct hid_device_id *id)
{ … }
static const struct hid_device_id creative_sb0540_devices[] = …;
MODULE_DEVICE_TABLE(hid, creative_sb0540_devices);
static struct hid_driver creative_sb0540_driver = …;
module_hid_driver(…) …;