#include <linux/device.h>
#include <linux/libps2.h>
#include <linux/input/mt.h>
#include <linux/serio.h>
#include <linux/slab.h>
#include "psmouse.h"
#include "focaltech.h"
static const char * const focaltech_pnp_ids[] = …;
int focaltech_detect(struct psmouse *psmouse, bool set_properties)
{ … }
#ifdef CONFIG_MOUSE_PS2_FOCALTECH
#define FOC_TOUCH …
#define FOC_ABS …
#define FOC_REL …
#define FOC_MAX_FINGERS …
struct focaltech_finger_state { … };
struct focaltech_hw_state { … };
struct focaltech_data { … };
static void focaltech_report_state(struct psmouse *psmouse)
{ … }
static void focaltech_process_touch_packet(struct psmouse *psmouse,
unsigned char *packet)
{ … }
static void focaltech_process_abs_packet(struct psmouse *psmouse,
unsigned char *packet)
{ … }
static void focaltech_process_rel_packet(struct psmouse *psmouse,
unsigned char *packet)
{ … }
static void focaltech_process_packet(struct psmouse *psmouse)
{ … }
static psmouse_ret_t focaltech_process_byte(struct psmouse *psmouse)
{ … }
static int focaltech_switch_protocol(struct psmouse *psmouse)
{ … }
static void focaltech_reset(struct psmouse *psmouse)
{ … }
static void focaltech_disconnect(struct psmouse *psmouse)
{ … }
static int focaltech_reconnect(struct psmouse *psmouse)
{ … }
static void focaltech_set_input_params(struct psmouse *psmouse)
{ … }
static int focaltech_read_register(struct ps2dev *ps2dev, int reg,
unsigned char *param)
{ … }
static int focaltech_read_size(struct psmouse *psmouse)
{ … }
static void focaltech_set_resolution(struct psmouse *psmouse,
unsigned int resolution)
{ … }
static void focaltech_set_rate(struct psmouse *psmouse, unsigned int rate)
{ … }
static void focaltech_set_scale(struct psmouse *psmouse,
enum psmouse_scale scale)
{ … }
int focaltech_init(struct psmouse *psmouse)
{ … }
#endif