#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/serio.h>
#include <linux/notifier.h>
#include "rmi_driver.h"
#define RMI_F03_RX_DATA_OFB …
#define RMI_F03_OB_SIZE …
#define RMI_F03_OB_OFFSET …
#define RMI_F03_OB_DATA_OFFSET …
#define RMI_F03_OB_FLAG_TIMEOUT …
#define RMI_F03_OB_FLAG_PARITY …
#define RMI_F03_DEVICE_COUNT …
#define RMI_F03_BYTES_PER_DEVICE …
#define RMI_F03_BYTES_PER_DEVICE_SHIFT …
#define RMI_F03_QUEUE_LENGTH …
#define PSMOUSE_OOB_EXTRA_BTNS …
struct f03_data { … };
int rmi_f03_overwrite_button(struct rmi_function *fn, unsigned int button,
int value)
{ … }
void rmi_f03_commit_buttons(struct rmi_function *fn)
{ … }
static int rmi_f03_pt_write(struct serio *id, unsigned char val)
{ … }
static int rmi_f03_initialize(struct f03_data *f03)
{ … }
static int rmi_f03_pt_open(struct serio *serio)
{ … }
static void rmi_f03_pt_close(struct serio *serio)
{ … }
static int rmi_f03_register_pt(struct f03_data *f03)
{ … }
static int rmi_f03_probe(struct rmi_function *fn)
{ … }
static int rmi_f03_config(struct rmi_function *fn)
{ … }
static irqreturn_t rmi_f03_attention(int irq, void *ctx)
{ … }
static void rmi_f03_remove(struct rmi_function *fn)
{ … }
struct rmi_function_handler rmi_f03_handler = …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;