#include <linux/bitops.h>
#include <linux/input.h>
#include <linux/serio.h>
#include <linux/libps2.h>
#include <linux/types.h>
#include "psmouse.h"
#include "logips2pp.h"
#define PS2PP_KIND_WHEEL …
#define PS2PP_KIND_MX …
#define PS2PP_KIND_TP3 …
#define PS2PP_KIND_TRACKMAN …
#define PS2PP_WHEEL …
#define PS2PP_HWHEEL …
#define PS2PP_SIDE_BTN …
#define PS2PP_EXTRA_BTN …
#define PS2PP_TASK_BTN …
#define PS2PP_NAV_BTN …
struct ps2pp_info { … };
static psmouse_ret_t ps2pp_process_byte(struct psmouse *psmouse)
{ … }
static int ps2pp_cmd(struct psmouse *psmouse, u8 *param, u8 command)
{ … }
static void ps2pp_set_smartscroll(struct psmouse *psmouse, bool smartscroll)
{ … }
static ssize_t ps2pp_attr_show_smartscroll(struct psmouse *psmouse,
void *data, char *buf)
{ … }
static ssize_t ps2pp_attr_set_smartscroll(struct psmouse *psmouse, void *data,
const char *buf, size_t count)
{ … }
PSMOUSE_DEFINE_ATTR(…);
static void ps2pp_set_resolution(struct psmouse *psmouse,
unsigned int resolution)
{ … }
static void ps2pp_disconnect(struct psmouse *psmouse)
{ … }
static const struct ps2pp_info *get_model_info(unsigned char model)
{ … }
static void ps2pp_set_model_properties(struct psmouse *psmouse,
const struct ps2pp_info *model_info,
bool using_ps2pp)
{ … }
static int ps2pp_setup_protocol(struct psmouse *psmouse,
const struct ps2pp_info *model_info)
{ … }
int ps2pp_detect(struct psmouse *psmouse, bool set_properties)
{ … }