• 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

31 #include "psmouse.h"
81 static int fsp_reg_read(struct psmouse *psmouse, int reg_addr, int *reg_val)
83 struct ps2dev *ps2dev = &psmouse->ps2dev;
95 psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
133 psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
139 static int fsp_reg_write(struct psmouse *psmouse, int reg_addr, int reg_val)
141 struct ps2dev *ps2dev = &psmouse->ps2dev;
191 static int fsp_reg_write_enable(struct psmouse *psmouse, bool enable)
195 if (fsp_reg_read(psmouse, FSP_REG_SYSCTL1, &v) == -1)
205 if (fsp_reg_write(psmouse, FSP_REG_SYSCTL1, nv) == -1)
211 static int fsp_page_reg_read(struct psmouse *psmouse, int *reg_val)
213 struct ps2dev *ps2dev = &psmouse->ps2dev;
218 psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
244 psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
250 static int fsp_page_reg_write(struct psmouse *psmouse, int reg_val)
252 struct ps2dev *ps2dev = &psmouse->ps2dev;
287 static int fsp_get_version(struct psmouse *psmouse, int *version)
289 if (fsp_reg_read(psmouse, FSP_REG_VERSION, version))
295 static int fsp_get_revision(struct psmouse *psmouse, int *rev)
297 if (fsp_reg_read(psmouse, FSP_REG_REVISION, rev))
303 static int fsp_get_buttons(struct psmouse *psmouse, int *btn)
313 if (fsp_reg_read(psmouse, FSP_REG_TMOD_STATUS1, &val) == -1)
321 static int fsp_opc_tag_enable(struct psmouse *psmouse, bool enable)
326 if (fsp_reg_read(psmouse, FSP_REG_OPC_QDOWN, &v) == -1) {
327 dev_err(&psmouse->ps2dev.serio->dev, "Unable get OPC state.\n");
338 fsp_reg_write_enable(psmouse, true);
339 res = fsp_reg_write(psmouse, FSP_REG_OPC_QDOWN, nv);
340 fsp_reg_write_enable(psmouse, false);
344 dev_err(&psmouse->ps2dev.serio->dev,
352 static int fsp_onpad_vscr(struct psmouse *psmouse, bool enable)
354 struct fsp_data *pad = psmouse->private;
357 if (fsp_reg_read(psmouse, FSP_REG_ONPAD_CTL, &val))
367 if (fsp_reg_write(psmouse, FSP_REG_ONPAD_CTL, val))
373 static int fsp_onpad_hscr(struct psmouse *psmouse, bool enable)
375 struct fsp_data *pad = psmouse->private;
378 if (fsp_reg_read(psmouse, FSP_REG_ONPAD_CTL, &val))
381 if (fsp_reg_read(psmouse, FSP_REG_SYSCTL5, &v2))
394 if (fsp_reg_write(psmouse, FSP_REG_ONPAD_CTL, val))
398 if (fsp_reg_write(psmouse, FSP_REG_SYSCTL5, v2))
409 static ssize_t fsp_attr_set_setreg(struct psmouse *psmouse, void *data,
423 if (fsp_reg_write_enable(psmouse, true))
426 retval = fsp_reg_write(psmouse, reg, val) < 0 ? -EIO : count;
428 fsp_reg_write_enable(psmouse, false);
435 static ssize_t fsp_attr_show_getreg(struct psmouse *psmouse,
438 struct fsp_data *pad = psmouse->private;
448 static ssize_t fsp_attr_set_getreg(struct psmouse *psmouse, void *data,
451 struct fsp_data *pad = psmouse->private;
458 if (fsp_reg_read(psmouse, reg, &val))
470 static ssize_t fsp_attr_show_pagereg(struct psmouse *psmouse,
475 if (fsp_page_reg_read(psmouse, &val))
481 static ssize_t fsp_attr_set_pagereg(struct psmouse *psmouse, void *data,
489 if (fsp_page_reg_write(psmouse, val))
498 static ssize_t fsp_attr_show_vscroll(struct psmouse *psmouse,
501 struct fsp_data *pad = psmouse->private;
506 static ssize_t fsp_attr_set_vscroll(struct psmouse *psmouse, void *data,
514 fsp_onpad_vscr(psmouse, val);
522 static ssize_t fsp_attr_show_hscroll(struct psmouse *psmouse,
525 struct fsp_data *pad = psmouse->private;
530 static ssize_t fsp_attr_set_hscroll(struct psmouse *psmouse, void *data,
538 fsp_onpad_hscr(psmouse, val);
546 static ssize_t fsp_attr_show_flags(struct psmouse *psmouse,
549 struct fsp_data *pad = psmouse->private;
555 static ssize_t fsp_attr_set_flags(struct psmouse *psmouse, void *data,
558 struct fsp_data *pad = psmouse->private;
579 static ssize_t fsp_attr_show_ver(struct psmouse *psmouse,
626 static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse)
628 struct input_dev *dev = psmouse->dev;
629 struct fsp_data *ad = psmouse->private;
630 unsigned char *packet = psmouse->packet;
634 if (psmouse->pktcnt < 4)
641 switch (psmouse->packet[0] >> FSP_PKT_TYPE_SHIFT) {
643 dev_warn(&psmouse->ps2dev.serio->dev,
702 static int fsp_activate_protocol(struct psmouse *psmouse)
704 struct fsp_data *pad = psmouse->private;
705 struct ps2dev *ps2dev = &psmouse->ps2dev;
722 dev_err(&psmouse->ps2dev.serio->dev,
727 if (fsp_reg_read(psmouse, FSP_REG_SYSCTL5, &val)) {
728 dev_err(&psmouse->ps2dev.serio->dev,
741 if (fsp_reg_write(psmouse, FSP_REG_SYSCTL5, val)) {
742 dev_err(&psmouse->ps2dev.serio->dev,
751 if (fsp_opc_tag_enable(psmouse, true))
752 dev_warn(&psmouse->ps2dev.serio->dev,
756 fsp_onpad_vscr(psmouse, true);
757 fsp_onpad_hscr(psmouse, true);
762 int fsp_detect(struct psmouse *psmouse, bool set_properties)
766 if (fsp_reg_read(psmouse, FSP_REG_DEVICE_ID, &id))
773 psmouse->vendor = "Sentelic";
774 psmouse->name = "FingerSensingPad";
780 static void fsp_reset(struct psmouse *psmouse)
782 fsp_opc_tag_enable(psmouse, false);
783 fsp_onpad_vscr(psmouse, false);
784 fsp_onpad_hscr(psmouse, false);
787 static void fsp_disconnect(struct psmouse *psmouse)
789 sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj,
792 fsp_reset(psmouse);
793 kfree(psmouse->private);
796 static int fsp_reconnect(struct psmouse *psmouse)
800 if (fsp_detect(psmouse, 0))
803 if (fsp_get_version(psmouse, &version))
806 if (fsp_activate_protocol(psmouse))
812 int fsp_init(struct psmouse *psmouse)
818 if (fsp_get_version(psmouse, &ver) ||
819 fsp_get_revision(psmouse, &rev) ||
820 fsp_get_buttons(psmouse, &buttons)) {
828 psmouse->private = priv = kzalloc(sizeof(struct fsp_data), GFP_KERNEL);
840 __set_bit(BTN_MIDDLE, psmouse->dev->keybit);
841 __set_bit(BTN_BACK, psmouse->dev->keybit);
842 __set_bit(BTN_FORWARD, psmouse->dev->keybit);
843 __set_bit(REL_WHEEL, psmouse->dev->relbit);
844 __set_bit(REL_HWHEEL, psmouse->dev->relbit);
846 psmouse->protocol_handler = fsp_process_byte;
847 psmouse->disconnect = fsp_disconnect;
848 psmouse->reconnect = fsp_reconnect;
849 psmouse->cleanup = fsp_reset;
850 psmouse->pktsize = 4;
853 error = fsp_activate_protocol(psmouse);
857 error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj,
860 dev_err(&psmouse->ps2dev.serio->dev,
868 kfree(psmouse->private);
869 psmouse->private = NULL;