• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/mouse/

Lines Matching defs:psmouse

21 #include "psmouse.h"
37 static int synaptics_send_cmd(struct psmouse *psmouse, unsigned char c,
40 if (psmouse_sliced_command(psmouse, c) ||
41 ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) {
52 static int elantech_ps2_command(struct psmouse *psmouse,
55 struct ps2dev *ps2dev = &psmouse->ps2dev;
56 struct elantech_data *etd = psmouse->private;
79 static int elantech_read_reg(struct psmouse *psmouse, unsigned char reg,
82 struct elantech_data *etd = psmouse->private;
94 if (psmouse_sliced_command(psmouse, ETP_REGISTER_READ) ||
95 psmouse_sliced_command(psmouse, reg) ||
96 ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) {
102 if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
103 elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READ) ||
104 elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
105 elantech_ps2_command(psmouse, NULL, reg) ||
106 elantech_ps2_command(psmouse, param, PSMOUSE_CMD_GETINFO)) {
123 static int elantech_write_reg(struct psmouse *psmouse, unsigned char reg,
126 struct elantech_data *etd = psmouse->private;
137 if (psmouse_sliced_command(psmouse, ETP_REGISTER_WRITE) ||
138 psmouse_sliced_command(psmouse, reg) ||
139 psmouse_sliced_command(psmouse, val) ||
140 ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11)) {
146 if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
147 elantech_ps2_command(psmouse, NULL, ETP_REGISTER_WRITE) ||
148 elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
149 elantech_ps2_command(psmouse, NULL, reg) ||
150 elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
151 elantech_ps2_command(psmouse, NULL, val) ||
152 elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) {
182 static void elantech_report_absolute_v1(struct psmouse *psmouse)
184 struct input_dev *dev = psmouse->dev;
185 struct elantech_data *etd = psmouse->private;
186 unsigned char *packet = psmouse->packet;
249 static void elantech_report_absolute_v2(struct psmouse *psmouse)
251 struct input_dev *dev = psmouse->dev;
252 unsigned char *packet = psmouse->packet;
327 static int elantech_check_parity_v1(struct psmouse *psmouse)
329 struct elantech_data *etd = psmouse->private;
330 unsigned char *packet = psmouse->packet;
354 static psmouse_ret_t elantech_process_byte(struct psmouse *psmouse)
356 struct elantech_data *etd = psmouse->private;
358 if (psmouse->pktcnt < psmouse->pktsize)
362 elantech_packet_dump(psmouse->packet, psmouse->pktsize);
366 if (etd->paritycheck && !elantech_check_parity_v1(psmouse))
369 elantech_report_absolute_v1(psmouse);
374 elantech_report_absolute_v2(psmouse);
384 static int elantech_set_absolute_mode(struct psmouse *psmouse)
386 struct elantech_data *etd = psmouse->private;
395 if (elantech_write_reg(psmouse, 0x10, etd->reg_10) ||
396 elantech_write_reg(psmouse, 0x11, etd->reg_11)) {
406 if (elantech_write_reg(psmouse, 0x10, etd->reg_10) ||
407 elantech_write_reg(psmouse, 0x11, etd->reg_11) ||
408 elantech_write_reg(psmouse, 0x21, etd->reg_21)) {
422 rc = elantech_read_reg(psmouse, 0x10, &val);
448 static void elantech_set_input_params(struct psmouse *psmouse)
450 struct input_dev *dev = psmouse->dev;
451 struct elantech_data *etd = psmouse->private;
497 static ssize_t elantech_show_int_attr(struct psmouse *psmouse, void *data,
500 struct elantech_data *etd = psmouse->private;
506 rc = elantech_read_reg(psmouse, attr->reg, reg);
514 static ssize_t elantech_set_int_attr(struct psmouse *psmouse,
517 struct elantech_data *etd = psmouse->private;
540 if (!attr->reg || elantech_write_reg(psmouse, attr->reg, value) == 0)
608 int elantech_detect(struct psmouse *psmouse, bool set_properties)
610 struct ps2dev *ps2dev = &psmouse->ps2dev;
613 ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
639 if (synaptics_send_cmd(psmouse, ETP_FW_VERSION_QUERY, param)) {
657 psmouse->vendor = "Elantech";
658 psmouse->name = "Touchpad";
667 static void elantech_disconnect(struct psmouse *psmouse)
669 sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj,
671 kfree(psmouse->private);
672 psmouse->private = NULL;
678 static int elantech_reconnect(struct psmouse *psmouse)
680 if (elantech_detect(psmouse, 0))
683 if (elantech_set_absolute_mode(psmouse)) {
694 int elantech_init(struct psmouse *psmouse)
700 psmouse->private = etd = kzalloc(sizeof(struct elantech_data), GFP_KERNEL);
711 if (synaptics_send_cmd(psmouse, ETP_FW_VERSION_QUERY, param)) {
736 if (synaptics_send_cmd(psmouse, ETP_CAPABILITIES_QUERY, param)) {
749 if (elantech_set_absolute_mode(psmouse)) {
754 elantech_set_input_params(psmouse);
756 error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj,
763 psmouse->protocol_handler = elantech_process_byte;
764 psmouse->disconnect = elantech_disconnect;
765 psmouse->reconnect = elantech_reconnect;
766 psmouse->pktsize = etd->hw_version == 2 ? 6 : 4;