#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/serio.h>
#include <linux/libps2.h>
#include <linux/input.h>
#include <linux/input/mt.h>
#include <linux/sched.h>
#include <linux/wait.h>
#include "cypress_ps2.h"
#undef CYTP_DEBUG_VERBOSE
static void cypress_set_packet_size(struct psmouse *psmouse, unsigned int n)
{ … }
static const u8 cytp_rate[] = …;
static const u8 cytp_resolution[] = …;
static int cypress_ps2_sendbyte(struct psmouse *psmouse, u8 cmd)
{ … }
static int cypress_ps2_ext_cmd(struct psmouse *psmouse, u8 prefix, u8 nibble)
{ … }
static bool cypress_verify_cmd_state(struct psmouse *psmouse, u8 cmd, u8* param)
{ … }
static int cypress_send_ext_cmd(struct psmouse *psmouse, u8 cmd, u8 *param)
{ … }
int cypress_detect(struct psmouse *psmouse, bool set_properties)
{ … }
static int cypress_read_fw_version(struct psmouse *psmouse)
{ … }
static int cypress_read_tp_metrics(struct psmouse *psmouse)
{ … }
static int cypress_query_hardware(struct psmouse *psmouse)
{ … }
static int cypress_set_absolute_mode(struct psmouse *psmouse)
{ … }
static void cypress_reset(struct psmouse *psmouse)
{ … }
static int cypress_set_input_params(struct input_dev *input,
struct cytp_data *cytp)
{ … }
static int cypress_get_finger_count(u8 header_byte)
{ … }
static int cypress_parse_packet(struct psmouse *psmouse,
struct cytp_data *cytp,
struct cytp_report_data *report_data)
{ … }
static void cypress_process_packet(struct psmouse *psmouse, bool zero_pkt)
{ … }
static psmouse_ret_t cypress_validate_byte(struct psmouse *psmouse)
{ … }
static psmouse_ret_t cypress_protocol_handler(struct psmouse *psmouse)
{ … }
static void cypress_set_rate(struct psmouse *psmouse, unsigned int rate)
{ … }
static void cypress_disconnect(struct psmouse *psmouse)
{ … }
static int cypress_reconnect(struct psmouse *psmouse)
{ … }
int cypress_init(struct psmouse *psmouse)
{ … }