drivers/input/mouse/alps.c
1028
struct psmouse *psmouse)
drivers/input/mouse/alps.c
1030
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1088
static void alps_process_trackstick_packet_v7(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1090
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1091
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
1097
psmouse_warn(psmouse,
drivers/input/mouse/alps.c
1116
static void alps_process_touchpad_packet_v7(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1118
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1119
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/alps.c
1124
if (priv->decode_fields(f, psmouse->packet, psmouse))
drivers/input/mouse/alps.c
1127
alps_report_mt_data(psmouse, alps_get_mt_count(f->mt));
drivers/input/mouse/alps.c
1138
static void alps_process_packet_v7(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1140
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
1143
alps_process_trackstick_packet_v7(psmouse);
drivers/input/mouse/alps.c
1145
alps_process_touchpad_packet_v7(psmouse);
drivers/input/mouse/alps.c
1178
unsigned char *p, struct psmouse *psmouse)
drivers/input/mouse/alps.c
1180
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1314
static void alps_process_packet_ss4_v2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1316
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1317
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
1318
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/alps.c
1323
priv->decode_fields(f, packet, psmouse);
drivers/input/mouse/alps.c
1333
priv->decode_fields(f, priv->multi_data, psmouse);
drivers/input/mouse/alps.c
1358
psmouse_warn(psmouse,
drivers/input/mouse/alps.c
1376
alps_report_mt_data(psmouse, (f->fingers <= 4) ? f->fingers : 4);
drivers/input/mouse/alps.c
1388
static bool alps_is_valid_package_ss4_v2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1390
if (psmouse->pktcnt == 4 && ((psmouse->packet[3] & 0x08) != 0x08))
drivers/input/mouse/alps.c
1392
if (psmouse->pktcnt == 6 && ((psmouse->packet[5] & 0x10) != 0x0))
drivers/input/mouse/alps.c
1401
struct psmouse *psmouse = priv->psmouse;
drivers/input/mouse/alps.c
1407
psmouse_err(psmouse, "failed to allocate secondary device\n");
drivers/input/mouse/alps.c
1412
psmouse->ps2dev.serio->phys,
drivers/input/mouse/alps.c
1426
dev3->dev.parent = &psmouse->ps2dev.serio->dev;
drivers/input/mouse/alps.c
1438
psmouse_err(psmouse,
drivers/input/mouse/alps.c
1472
static void alps_report_bare_ps2_packet(struct psmouse *psmouse,
drivers/input/mouse/alps.c
1476
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1484
dev2 = psmouse->dev;
drivers/input/mouse/alps.c
1488
psmouse_queue_work(psmouse, &priv->dev3_register_work,
drivers/input/mouse/alps.c
1504
static psmouse_ret_t alps_handle_interleaved_ps2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1506
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1508
if (psmouse->pktcnt < 6)
drivers/input/mouse/alps.c
1511
if (psmouse->pktcnt == 6) {
drivers/input/mouse/alps.c
1524
if (psmouse->packet[6] & 0x80) {
drivers/input/mouse/alps.c
1532
if (((psmouse->packet[3] |
drivers/input/mouse/alps.c
1533
psmouse->packet[4] |
drivers/input/mouse/alps.c
1534
psmouse->packet[5]) & 0x80) ||
drivers/input/mouse/alps.c
1535
(!alps_is_valid_first_byte(priv, psmouse->packet[6]))) {
drivers/input/mouse/alps.c
1536
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
1538
psmouse->packet + 3);
drivers/input/mouse/alps.c
1542
priv->process_packet(psmouse);
drivers/input/mouse/alps.c
1545
psmouse->packet[0] = psmouse->packet[6];
drivers/input/mouse/alps.c
1546
psmouse->pktcnt = 1;
drivers/input/mouse/alps.c
1566
alps_report_bare_ps2_packet(psmouse, &psmouse->packet[3],
drivers/input/mouse/alps.c
1576
psmouse->packet[3] = psmouse->packet[6] & 0xf7;
drivers/input/mouse/alps.c
1577
psmouse->pktcnt = 4;
drivers/input/mouse/alps.c
1586
struct psmouse *psmouse = priv->psmouse;
drivers/input/mouse/alps.c
1588
guard(serio_pause_rx)(psmouse->ps2dev.serio);
drivers/input/mouse/alps.c
1590
if (psmouse->pktcnt == psmouse->pktsize) {
drivers/input/mouse/alps.c
1597
if ((psmouse->packet[3] |
drivers/input/mouse/alps.c
1598
psmouse->packet[4] |
drivers/input/mouse/alps.c
1599
psmouse->packet[5]) & 0x80) {
drivers/input/mouse/alps.c
1600
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
1602
psmouse->packet + 3);
drivers/input/mouse/alps.c
1604
priv->process_packet(psmouse);
drivers/input/mouse/alps.c
1606
psmouse->pktcnt = 0;
drivers/input/mouse/alps.c
1610
static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1612
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1622
!psmouse->out_of_sync_cnt &&
drivers/input/mouse/alps.c
1623
(psmouse->packet[0] & 0xc8) == 0x08) {
drivers/input/mouse/alps.c
1625
if (psmouse->pktcnt == 3) {
drivers/input/mouse/alps.c
1626
alps_report_bare_ps2_packet(psmouse, psmouse->packet,
drivers/input/mouse/alps.c
1636
psmouse->pktcnt >= 4 && (psmouse->packet[3] & 0x0f) == 0x0f) {
drivers/input/mouse/alps.c
1637
return alps_handle_interleaved_ps2(psmouse);
drivers/input/mouse/alps.c
1640
if (!alps_is_valid_first_byte(priv, psmouse->packet[0])) {
drivers/input/mouse/alps.c
1641
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
1643
psmouse->packet[0], priv->mask0, priv->byte0);
drivers/input/mouse/alps.c
1649
psmouse->pktcnt >= 2 && psmouse->pktcnt <= psmouse->pktsize &&
drivers/input/mouse/alps.c
1650
(psmouse->packet[psmouse->pktcnt - 1] & 0x80)) {
drivers/input/mouse/alps.c
1651
psmouse_dbg(psmouse, "refusing packet[%i] = %x\n",
drivers/input/mouse/alps.c
1652
psmouse->pktcnt - 1,
drivers/input/mouse/alps.c
1653
psmouse->packet[psmouse->pktcnt - 1]);
drivers/input/mouse/alps.c
1656
psmouse->pktcnt == psmouse->pktsize) {
drivers/input/mouse/alps.c
1673
!alps_is_valid_package_v7(psmouse)) ||
drivers/input/mouse/alps.c
1675
!alps_is_valid_package_ss4_v2(psmouse))) {
drivers/input/mouse/alps.c
1676
psmouse_dbg(psmouse, "refusing packet[%i] = %x\n",
drivers/input/mouse/alps.c
1677
psmouse->pktcnt - 1,
drivers/input/mouse/alps.c
1678
psmouse->packet[psmouse->pktcnt - 1]);
drivers/input/mouse/alps.c
1682
if (psmouse->pktcnt == psmouse->pktsize) {
drivers/input/mouse/alps.c
1683
priv->process_packet(psmouse);
drivers/input/mouse/alps.c
1690
static int alps_command_mode_send_nibble(struct psmouse *psmouse, int nibble)
drivers/input/mouse/alps.c
1692
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1693
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1710
static int alps_command_mode_set_addr(struct psmouse *psmouse, int addr)
drivers/input/mouse/alps.c
1712
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1713
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1721
if (alps_command_mode_send_nibble(psmouse, nibble))
drivers/input/mouse/alps.c
1728
static int __alps_command_mode_read_reg(struct psmouse *psmouse, int addr)
drivers/input/mouse/alps.c
1730
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1747
static int alps_command_mode_read_reg(struct psmouse *psmouse, int addr)
drivers/input/mouse/alps.c
1749
if (alps_command_mode_set_addr(psmouse, addr))
drivers/input/mouse/alps.c
1751
return __alps_command_mode_read_reg(psmouse, addr);
drivers/input/mouse/alps.c
1754
static int __alps_command_mode_write_reg(struct psmouse *psmouse, u8 value)
drivers/input/mouse/alps.c
1756
if (alps_command_mode_send_nibble(psmouse, (value >> 4) & 0xf))
drivers/input/mouse/alps.c
1758
if (alps_command_mode_send_nibble(psmouse, value & 0xf))
drivers/input/mouse/alps.c
1763
static int alps_command_mode_write_reg(struct psmouse *psmouse, int addr,
drivers/input/mouse/alps.c
1766
if (alps_command_mode_set_addr(psmouse, addr))
drivers/input/mouse/alps.c
1768
return __alps_command_mode_write_reg(psmouse, value);
drivers/input/mouse/alps.c
1771
static int alps_rpt_cmd(struct psmouse *psmouse, int init_command,
drivers/input/mouse/alps.c
1774
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1789
psmouse_dbg(psmouse, "%2.2X report: %3ph\n",
drivers/input/mouse/alps.c
1810
static int alps_enter_command_mode(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1814
if (alps_rpt_cmd(psmouse, 0, PSMOUSE_CMD_RESET_WRAP, param)) {
drivers/input/mouse/alps.c
1815
psmouse_err(psmouse, "failed to enter command mode\n");
drivers/input/mouse/alps.c
1820
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
1827
static inline int alps_exit_command_mode(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1829
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1840
static int alps_passthrough_mode_v2(struct psmouse *psmouse, bool enable)
drivers/input/mouse/alps.c
1842
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1857
static int alps_absolute_mode_v1_v2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1859
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1876
static int alps_monitor_mode_send_word(struct psmouse *psmouse, u16 word)
drivers/input/mouse/alps.c
1886
if (alps_command_mode_send_nibble(psmouse, nibble))
drivers/input/mouse/alps.c
1893
static int alps_monitor_mode_write_reg(struct psmouse *psmouse,
drivers/input/mouse/alps.c
1896
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1900
alps_monitor_mode_send_word(psmouse, 0x0A0) ||
drivers/input/mouse/alps.c
1901
alps_monitor_mode_send_word(psmouse, addr) ||
drivers/input/mouse/alps.c
1902
alps_monitor_mode_send_word(psmouse, value) ||
drivers/input/mouse/alps.c
1909
static int alps_monitor_mode(struct psmouse *psmouse, bool enable)
drivers/input/mouse/alps.c
1911
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1933
static int alps_absolute_mode_v6(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1939
if (alps_monitor_mode(psmouse, true))
drivers/input/mouse/alps.c
1942
ret = alps_monitor_mode_write_reg(psmouse, 0x000, reg_val);
drivers/input/mouse/alps.c
1944
if (alps_monitor_mode(psmouse, false))
drivers/input/mouse/alps.c
1950
static int alps_get_status(struct psmouse *psmouse, char *param)
drivers/input/mouse/alps.c
1953
if (alps_rpt_cmd(psmouse, 0, PSMOUSE_CMD_DISABLE, param))
drivers/input/mouse/alps.c
1968
static int alps_tap_mode(struct psmouse *psmouse, int enable)
drivers/input/mouse/alps.c
1970
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
1981
if (alps_get_status(psmouse, param))
drivers/input/mouse/alps.c
1991
static int alps_poll(struct psmouse *psmouse)
drivers/input/mouse/alps.c
1993
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
1994
unsigned char buf[sizeof(psmouse->packet)];
drivers/input/mouse/alps.c
1998
alps_passthrough_mode_v2(psmouse, true);
drivers/input/mouse/alps.c
2000
poll_failed = ps2_command(&psmouse->ps2dev, buf,
drivers/input/mouse/alps.c
2001
PSMOUSE_CMD_POLL | (psmouse->pktsize << 8)) < 0;
drivers/input/mouse/alps.c
2004
alps_passthrough_mode_v2(psmouse, false);
drivers/input/mouse/alps.c
2009
if ((psmouse->badbyte & 0xc8) == 0x08) {
drivers/input/mouse/alps.c
2013
if (ps2_command(&psmouse->ps2dev, buf, PSMOUSE_CMD_POLL | (3 << 8)))
drivers/input/mouse/alps.c
2017
memcpy(psmouse->packet, buf, sizeof(buf));
drivers/input/mouse/alps.c
2021
static int alps_hw_init_v1_v2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2023
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
2026
alps_passthrough_mode_v2(psmouse, true)) {
drivers/input/mouse/alps.c
2030
if (alps_tap_mode(psmouse, true)) {
drivers/input/mouse/alps.c
2031
psmouse_warn(psmouse, "Failed to enable hardware tapping\n");
drivers/input/mouse/alps.c
2035
if (alps_absolute_mode_v1_v2(psmouse)) {
drivers/input/mouse/alps.c
2036
psmouse_err(psmouse, "Failed to enable absolute mode\n");
drivers/input/mouse/alps.c
2041
alps_passthrough_mode_v2(psmouse, false)) {
drivers/input/mouse/alps.c
2046
if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSTREAM)) {
drivers/input/mouse/alps.c
2047
psmouse_err(psmouse, "Failed to enable stream mode\n");
drivers/input/mouse/alps.c
2055
static int alps_trackstick_enter_extended_mode_v3_v6(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2059
if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) ||
drivers/input/mouse/alps.c
2060
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) ||
drivers/input/mouse/alps.c
2061
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11) ||
drivers/input/mouse/alps.c
2062
ps2_command(&psmouse->ps2dev, ¶m[0], PSMOUSE_CMD_SETRATE) ||
drivers/input/mouse/alps.c
2063
ps2_command(&psmouse->ps2dev, ¶m[1], PSMOUSE_CMD_SETRATE))
drivers/input/mouse/alps.c
2069
static int alps_hw_init_v6(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2074
if (alps_passthrough_mode_v2(psmouse, true))
drivers/input/mouse/alps.c
2077
ret = alps_trackstick_enter_extended_mode_v3_v6(psmouse);
drivers/input/mouse/alps.c
2079
if (alps_passthrough_mode_v2(psmouse, false))
drivers/input/mouse/alps.c
2085
if (alps_absolute_mode_v6(psmouse)) {
drivers/input/mouse/alps.c
2086
psmouse_err(psmouse, "Failed to enable absolute mode\n");
drivers/input/mouse/alps.c
2096
static int alps_passthrough_mode_v3(struct psmouse *psmouse,
drivers/input/mouse/alps.c
2101
if (alps_enter_command_mode(psmouse))
drivers/input/mouse/alps.c
2104
reg_val = alps_command_mode_read_reg(psmouse, reg_base + 0x0008);
drivers/input/mouse/alps.c
2113
ret = __alps_command_mode_write_reg(psmouse, reg_val);
drivers/input/mouse/alps.c
2116
if (alps_exit_command_mode(psmouse))
drivers/input/mouse/alps.c
2122
static int alps_absolute_mode_v3(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2126
reg_val = alps_command_mode_read_reg(psmouse, 0x0004);
drivers/input/mouse/alps.c
2131
if (__alps_command_mode_write_reg(psmouse, reg_val))
drivers/input/mouse/alps.c
2137
static int alps_probe_trackstick_v3_v7(struct psmouse *psmouse, int reg_base)
drivers/input/mouse/alps.c
2141
if (alps_enter_command_mode(psmouse))
drivers/input/mouse/alps.c
2144
reg_val = alps_command_mode_read_reg(psmouse, reg_base + 0x08);
drivers/input/mouse/alps.c
2152
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2156
static int alps_setup_trackstick_v3(struct psmouse *psmouse, int reg_base)
drivers/input/mouse/alps.c
2170
if (alps_passthrough_mode_v3(psmouse, reg_base, true))
drivers/input/mouse/alps.c
2182
if (alps_rpt_cmd(psmouse, 0, PSMOUSE_CMD_SETSCALE21, param)) {
drivers/input/mouse/alps.c
2183
psmouse_warn(psmouse, "Failed to initialize trackstick (E7 report failed)\n");
drivers/input/mouse/alps.c
2186
psmouse_dbg(psmouse, "trackstick E7 report: %3ph\n", param);
drivers/input/mouse/alps.c
2187
if (alps_trackstick_enter_extended_mode_v3_v6(psmouse)) {
drivers/input/mouse/alps.c
2188
psmouse_err(psmouse, "Failed to enter into trackstick extended mode\n");
drivers/input/mouse/alps.c
2193
if (alps_passthrough_mode_v3(psmouse, reg_base, false))
drivers/input/mouse/alps.c
2199
if (alps_enter_command_mode(psmouse))
drivers/input/mouse/alps.c
2202
reg_val = alps_command_mode_read_reg(psmouse, reg_base + 0x08);
drivers/input/mouse/alps.c
2211
if (__alps_command_mode_write_reg(psmouse, reg_val))
drivers/input/mouse/alps.c
2215
if (alps_exit_command_mode(psmouse))
drivers/input/mouse/alps.c
2221
static int alps_hw_init_v3(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2223
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
2224
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2229
alps_setup_trackstick_v3(psmouse, ALPS_REG_BASE_PINNACLE) == -EIO)
drivers/input/mouse/alps.c
2232
if (alps_enter_command_mode(psmouse) ||
drivers/input/mouse/alps.c
2233
alps_absolute_mode_v3(psmouse)) {
drivers/input/mouse/alps.c
2234
psmouse_err(psmouse, "Failed to enter absolute mode\n");
drivers/input/mouse/alps.c
2238
reg_val = alps_command_mode_read_reg(psmouse, 0x0006);
drivers/input/mouse/alps.c
2241
if (__alps_command_mode_write_reg(psmouse, reg_val | 0x01))
drivers/input/mouse/alps.c
2244
reg_val = alps_command_mode_read_reg(psmouse, 0x0007);
drivers/input/mouse/alps.c
2247
if (__alps_command_mode_write_reg(psmouse, reg_val | 0x01))
drivers/input/mouse/alps.c
2250
if (alps_command_mode_read_reg(psmouse, 0x0144) == -1)
drivers/input/mouse/alps.c
2252
if (__alps_command_mode_write_reg(psmouse, 0x04))
drivers/input/mouse/alps.c
2255
if (alps_command_mode_read_reg(psmouse, 0x0159) == -1)
drivers/input/mouse/alps.c
2257
if (__alps_command_mode_write_reg(psmouse, 0x03))
drivers/input/mouse/alps.c
2260
if (alps_command_mode_read_reg(psmouse, 0x0163) == -1)
drivers/input/mouse/alps.c
2262
if (alps_command_mode_write_reg(psmouse, 0x0163, 0x03))
drivers/input/mouse/alps.c
2265
if (alps_command_mode_read_reg(psmouse, 0x0162) == -1)
drivers/input/mouse/alps.c
2267
if (alps_command_mode_write_reg(psmouse, 0x0162, 0x04))
drivers/input/mouse/alps.c
2270
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2276
psmouse_err(psmouse, "Failed to enable data reporting\n");
drivers/input/mouse/alps.c
2288
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2292
static int alps_get_v3_v7_resolution(struct psmouse *psmouse, int reg_pitch)
drivers/input/mouse/alps.c
2295
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
2297
reg = alps_command_mode_read_reg(psmouse, reg_pitch);
drivers/input/mouse/alps.c
2307
reg = alps_command_mode_read_reg(psmouse, reg_pitch + 1);
drivers/input/mouse/alps.c
2323
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
2331
static int alps_hw_init_rushmore_v3(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2333
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
2334
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2338
reg_val = alps_setup_trackstick_v3(psmouse,
drivers/input/mouse/alps.c
2344
if (alps_enter_command_mode(psmouse) ||
drivers/input/mouse/alps.c
2345
alps_command_mode_read_reg(psmouse, 0xc2d9) == -1 ||
drivers/input/mouse/alps.c
2346
alps_command_mode_write_reg(psmouse, 0xc2cb, 0x00))
drivers/input/mouse/alps.c
2349
if (alps_get_v3_v7_resolution(psmouse, 0xc2da))
drivers/input/mouse/alps.c
2352
reg_val = alps_command_mode_read_reg(psmouse, 0xc2c6);
drivers/input/mouse/alps.c
2355
if (__alps_command_mode_write_reg(psmouse, reg_val & 0xfd))
drivers/input/mouse/alps.c
2358
if (alps_command_mode_write_reg(psmouse, 0xc2c9, 0x64))
drivers/input/mouse/alps.c
2362
reg_val = alps_command_mode_read_reg(psmouse, 0xc2c4);
drivers/input/mouse/alps.c
2365
if (__alps_command_mode_write_reg(psmouse, reg_val | 0x02))
drivers/input/mouse/alps.c
2368
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2372
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2377
static int alps_absolute_mode_v4(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2381
reg_val = alps_command_mode_read_reg(psmouse, 0x0004);
drivers/input/mouse/alps.c
2386
if (__alps_command_mode_write_reg(psmouse, reg_val))
drivers/input/mouse/alps.c
2392
static int alps_hw_init_v4(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2394
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2397
if (alps_enter_command_mode(psmouse))
drivers/input/mouse/alps.c
2400
if (alps_absolute_mode_v4(psmouse)) {
drivers/input/mouse/alps.c
2401
psmouse_err(psmouse, "Failed to enter absolute mode\n");
drivers/input/mouse/alps.c
2405
if (alps_command_mode_write_reg(psmouse, 0x0007, 0x8c))
drivers/input/mouse/alps.c
2408
if (alps_command_mode_write_reg(psmouse, 0x0149, 0x03))
drivers/input/mouse/alps.c
2411
if (alps_command_mode_write_reg(psmouse, 0x0160, 0x03))
drivers/input/mouse/alps.c
2414
if (alps_command_mode_write_reg(psmouse, 0x017f, 0x15))
drivers/input/mouse/alps.c
2417
if (alps_command_mode_write_reg(psmouse, 0x0151, 0x01))
drivers/input/mouse/alps.c
2420
if (alps_command_mode_write_reg(psmouse, 0x0168, 0x03))
drivers/input/mouse/alps.c
2423
if (alps_command_mode_write_reg(psmouse, 0x014a, 0x03))
drivers/input/mouse/alps.c
2426
if (alps_command_mode_write_reg(psmouse, 0x0161, 0x03))
drivers/input/mouse/alps.c
2429
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2449
psmouse_err(psmouse, "Failed to enable data reporting\n");
drivers/input/mouse/alps.c
2461
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2465
static int alps_get_otp_values_ss4_v2(struct psmouse *psmouse,
drivers/input/mouse/alps.c
2468
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
248
static void alps_process_packet_v1_v2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
250
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
251
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
252
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/alps.c
2554
struct psmouse *psmouse)
drivers/input/mouse/alps.c
2558
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2565
if (alps_exit_command_mode(psmouse) == 0 &&
drivers/input/mouse/alps.c
2566
alps_enter_command_mode(psmouse) == 0) {
drivers/input/mouse/alps.c
2567
reg_val = alps_command_mode_read_reg(psmouse,
drivers/input/mouse/alps.c
2570
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2585
static int alps_set_defaults_ss4_v2(struct psmouse *psmouse,
drivers/input/mouse/alps.c
2592
if (alps_get_otp_values_ss4_v2(psmouse, 1, &otp[1][0]) ||
drivers/input/mouse/alps.c
2593
alps_get_otp_values_ss4_v2(psmouse, 0, &otp[0][0]))
drivers/input/mouse/alps.c
2600
alps_update_dual_info_ss4_v2(otp, priv, psmouse);
drivers/input/mouse/alps.c
2605
static int alps_dolphin_get_device_area(struct psmouse *psmouse,
drivers/input/mouse/alps.c
2608
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2612
if (alps_enter_command_mode(psmouse))
drivers/input/mouse/alps.c
2645
if (alps_exit_command_mode(psmouse))
drivers/input/mouse/alps.c
2651
static int alps_hw_init_dolphin_v1(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2653
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2668
static int alps_hw_init_v7(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2670
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2673
if (alps_enter_command_mode(psmouse) ||
drivers/input/mouse/alps.c
2674
alps_command_mode_read_reg(psmouse, 0xc2d9) == -1)
drivers/input/mouse/alps.c
2677
if (alps_get_v3_v7_resolution(psmouse, 0xc397))
drivers/input/mouse/alps.c
2680
if (alps_command_mode_write_reg(psmouse, 0xc2c9, 0x64))
drivers/input/mouse/alps.c
2683
reg_val = alps_command_mode_read_reg(psmouse, 0xc2c4);
drivers/input/mouse/alps.c
2686
if (__alps_command_mode_write_reg(psmouse, reg_val | 0x02))
drivers/input/mouse/alps.c
2689
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2693
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2697
static int alps_hw_init_ss4_v2(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2699
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/alps.c
2712
if (alps_exit_command_mode(psmouse) ||
drivers/input/mouse/alps.c
2713
alps_enter_command_mode(psmouse) ||
drivers/input/mouse/alps.c
2714
alps_command_mode_write_reg(psmouse, 0x001D, 0x20)) {
drivers/input/mouse/alps.c
2717
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2722
alps_exit_command_mode(psmouse);
drivers/input/mouse/alps.c
2726
static int alps_set_protocol(struct psmouse *psmouse,
drivers/input/mouse/alps.c
2730
psmouse->private = priv;
drivers/input/mouse/alps.c
2764
if (alps_probe_trackstick_v3_v7(psmouse,
drivers/input/mouse/alps.c
2780
if (alps_probe_trackstick_v3_v7(psmouse,
drivers/input/mouse/alps.c
2804
if (alps_dolphin_get_device_area(psmouse, priv))
drivers/input/mouse/alps.c
2831
if (alps_probe_trackstick_v3_v7(psmouse, ALPS_REG_BASE_V7) < 0)
drivers/input/mouse/alps.c
2844
if (alps_set_defaults_ss4_v2(psmouse, priv))
drivers/input/mouse/alps.c
2869
static bool alps_is_cs19_trackpoint(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2873
if (ps2_command(&psmouse->ps2dev,
drivers/input/mouse/alps.c
2886
static int alps_identify(struct psmouse *psmouse, struct alps_data *priv)
drivers/input/mouse/alps.c
2898
if (alps_rpt_cmd(psmouse, PSMOUSE_CMD_SETRES,
drivers/input/mouse/alps.c
2909
if (alps_rpt_cmd(psmouse, PSMOUSE_CMD_SETRES,
drivers/input/mouse/alps.c
2911
alps_rpt_cmd(psmouse, PSMOUSE_CMD_SETRES,
drivers/input/mouse/alps.c
2913
alps_exit_command_mode(psmouse))
drivers/input/mouse/alps.c
2937
psmouse_warn(psmouse,
drivers/input/mouse/alps.c
2942
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
2952
error = alps_set_protocol(psmouse, priv, protocol);
drivers/input/mouse/alps.c
2960
static int alps_reconnect(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2962
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
2964
psmouse_reset(psmouse);
drivers/input/mouse/alps.c
2966
if (alps_identify(psmouse, priv) < 0)
drivers/input/mouse/alps.c
2969
return priv->hw_init(psmouse);
drivers/input/mouse/alps.c
2972
static void alps_disconnect(struct psmouse *psmouse)
drivers/input/mouse/alps.c
2974
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
2976
psmouse_reset(psmouse);
drivers/input/mouse/alps.c
3043
int alps_init(struct psmouse *psmouse)
drivers/input/mouse/alps.c
3045
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
3046
struct input_dev *dev1 = psmouse->dev;
drivers/input/mouse/alps.c
3049
error = priv->hw_init(psmouse);
drivers/input/mouse/alps.c
3101
psmouse_err(psmouse,
drivers/input/mouse/alps.c
3108
psmouse->ps2dev.serio->phys);
drivers/input/mouse/alps.c
3121
dev2->dev.parent = &psmouse->ps2dev.serio->dev;
drivers/input/mouse/alps.c
3138
psmouse_err(psmouse,
drivers/input/mouse/alps.c
3148
priv->psmouse = psmouse;
drivers/input/mouse/alps.c
3153
psmouse->protocol_handler = alps_process_byte;
drivers/input/mouse/alps.c
3154
psmouse->poll = alps_poll;
drivers/input/mouse/alps.c
3155
psmouse->disconnect = alps_disconnect;
drivers/input/mouse/alps.c
3156
psmouse->reconnect = alps_reconnect;
drivers/input/mouse/alps.c
3157
psmouse->pktsize = priv->proto_version == ALPS_PROTO_V4 ? 8 : 6;
drivers/input/mouse/alps.c
3160
psmouse->resync_time = 0;
drivers/input/mouse/alps.c
3163
psmouse->resetafter = psmouse->pktsize * 2;
drivers/input/mouse/alps.c
3168
psmouse_reset(psmouse);
drivers/input/mouse/alps.c
3173
kfree(psmouse->private);
drivers/input/mouse/alps.c
3174
psmouse->private = NULL;
drivers/input/mouse/alps.c
3178
int alps_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/alps.c
3183
error = alps_identify(psmouse, NULL);
drivers/input/mouse/alps.c
3195
if (alps_is_cs19_trackpoint(psmouse)) {
drivers/input/mouse/alps.c
3196
psmouse_dbg(psmouse,
drivers/input/mouse/alps.c
3207
psmouse_reset(psmouse);
drivers/input/mouse/alps.c
3213
error = alps_identify(psmouse, priv);
drivers/input/mouse/alps.c
3220
psmouse->vendor = "ALPS";
drivers/input/mouse/alps.c
3221
psmouse->name = priv->flags & ALPS_DUALPOINT ?
drivers/input/mouse/alps.c
3223
psmouse->model = priv->proto_version;
drivers/input/mouse/alps.c
3232
psmouse->private = NULL;
drivers/input/mouse/alps.c
510
static void alps_report_mt_data(struct psmouse *psmouse, int n)
drivers/input/mouse/alps.c
512
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
513
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/alps.c
524
static void alps_report_semi_mt_data(struct psmouse *psmouse, int fingers)
drivers/input/mouse/alps.c
526
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
527
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/alps.c
555
static void alps_process_trackstick_packet_v3(struct psmouse *psmouse)
drivers/input/mouse/alps.c
557
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
558
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
564
psmouse_warn(psmouse,
drivers/input/mouse/alps.c
571
psmouse_dbg(psmouse, "Bad trackstick packet, discarding\n");
drivers/input/mouse/alps.c
635
struct psmouse *psmouse)
drivers/input/mouse/alps.c
661
struct psmouse *psmouse)
drivers/input/mouse/alps.c
689
struct psmouse *psmouse)
drivers/input/mouse/alps.c
692
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
725
static void alps_process_touchpad_packet_v3_v5(struct psmouse *psmouse)
drivers/input/mouse/alps.c
727
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
728
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
735
priv->decode_fields(f, packet, psmouse);
drivers/input/mouse/alps.c
756
priv->decode_fields(f, priv->multi_data, psmouse);
drivers/input/mouse/alps.c
792
alps_report_semi_mt_data(psmouse, fingers);
drivers/input/mouse/alps.c
803
static void alps_process_packet_v3(struct psmouse *psmouse)
drivers/input/mouse/alps.c
805
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
816
alps_process_trackstick_packet_v3(psmouse);
drivers/input/mouse/alps.c
820
alps_process_touchpad_packet_v3_v5(psmouse);
drivers/input/mouse/alps.c
823
static void alps_process_packet_v6(struct psmouse *psmouse)
drivers/input/mouse/alps.c
825
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
826
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
827
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/alps.c
840
psmouse_warn(psmouse,
drivers/input/mouse/alps.c
889
static void alps_process_packet_v4(struct psmouse *psmouse)
drivers/input/mouse/alps.c
891
struct alps_data *priv = psmouse->private;
drivers/input/mouse/alps.c
892
unsigned char *packet = psmouse->packet;
drivers/input/mouse/alps.c
935
alps_report_semi_mt_data(psmouse, f->fingers);
drivers/input/mouse/alps.c
938
static bool alps_is_valid_package_v7(struct psmouse *psmouse)
drivers/input/mouse/alps.c
940
switch (psmouse->pktcnt) {
drivers/input/mouse/alps.c
942
return (psmouse->packet[2] & 0x40) == 0x40;
drivers/input/mouse/alps.c
944
return (psmouse->packet[3] & 0x48) == 0x48;
drivers/input/mouse/alps.c
946
return (psmouse->packet[5] & 0x40) == 0x00;
drivers/input/mouse/alps.h
287
struct psmouse *psmouse;
drivers/input/mouse/alps.h
309
int (*hw_init)(struct psmouse *psmouse);
drivers/input/mouse/alps.h
310
void (*process_packet)(struct psmouse *psmouse);
drivers/input/mouse/alps.h
312
struct psmouse *psmouse);
drivers/input/mouse/alps.h
326
int alps_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/alps.h
327
int alps_init(struct psmouse *psmouse);
drivers/input/mouse/byd.c
227
struct psmouse *psmouse;
drivers/input/mouse/byd.c
236
static void byd_report_input(struct psmouse *psmouse)
drivers/input/mouse/byd.c
238
struct byd_data *priv = psmouse->private;
drivers/input/mouse/byd.c
239
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/byd.c
255
struct psmouse *psmouse = priv->psmouse;
drivers/input/mouse/byd.c
257
guard(serio_pause_rx)(psmouse->ps2dev.serio);
drivers/input/mouse/byd.c
261
byd_report_input(psmouse);
drivers/input/mouse/byd.c
272
static psmouse_ret_t byd_process_byte(struct psmouse *psmouse)
drivers/input/mouse/byd.c
274
struct byd_data *priv = psmouse->private;
drivers/input/mouse/byd.c
275
u8 *pkt = psmouse->packet;
drivers/input/mouse/byd.c
277
if (psmouse->pktcnt > 0 && !(pkt[0] & PS2_ALWAYS_1)) {
drivers/input/mouse/byd.c
278
psmouse_warn(psmouse, "Always_1 bit not 1. pkt[0] = %02x\n",
drivers/input/mouse/byd.c
283
if (psmouse->pktcnt < psmouse->pktsize)
drivers/input/mouse/byd.c
317
psmouse_warn(psmouse, "Unrecognized Z: pkt = %*ph\n",
drivers/input/mouse/byd.c
318
4, psmouse->packet);
drivers/input/mouse/byd.c
325
byd_report_input(psmouse);
drivers/input/mouse/byd.c
336
static int byd_reset_touchpad(struct psmouse *psmouse)
drivers/input/mouse/byd.c
338
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/byd.c
391
psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
drivers/input/mouse/byd.c
395
static int byd_reconnect(struct psmouse *psmouse)
drivers/input/mouse/byd.c
399
psmouse_dbg(psmouse, "Reconnect\n");
drivers/input/mouse/byd.c
401
psmouse_reset(psmouse);
drivers/input/mouse/byd.c
404
error = byd_detect(psmouse, 0);
drivers/input/mouse/byd.c
410
psmouse_dbg(psmouse, "Reconnected after %d attempts\n", retry);
drivers/input/mouse/byd.c
412
error = byd_reset_touchpad(psmouse);
drivers/input/mouse/byd.c
414
psmouse_err(psmouse, "Unable to initialize device\n");
drivers/input/mouse/byd.c
421
static void byd_disconnect(struct psmouse *psmouse)
drivers/input/mouse/byd.c
423
struct byd_data *priv = psmouse->private;
drivers/input/mouse/byd.c
427
kfree(psmouse->private);
drivers/input/mouse/byd.c
428
psmouse->private = NULL;
drivers/input/mouse/byd.c
432
int byd_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/byd.c
434
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/byd.c
451
psmouse_dbg(psmouse, "BYD touchpad detected\n");
drivers/input/mouse/byd.c
454
psmouse->vendor = "BYD";
drivers/input/mouse/byd.c
455
psmouse->name = "TouchPad";
drivers/input/mouse/byd.c
461
int byd_init(struct psmouse *psmouse)
drivers/input/mouse/byd.c
463
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/byd.c
466
if (psmouse_reset(psmouse))
drivers/input/mouse/byd.c
469
if (byd_reset_touchpad(psmouse))
drivers/input/mouse/byd.c
476
priv->psmouse = psmouse;
drivers/input/mouse/byd.c
479
psmouse->private = priv;
drivers/input/mouse/byd.c
480
psmouse->disconnect = byd_disconnect;
drivers/input/mouse/byd.c
481
psmouse->reconnect = byd_reconnect;
drivers/input/mouse/byd.c
482
psmouse->protocol_handler = byd_process_byte;
drivers/input/mouse/byd.c
483
psmouse->pktsize = 4;
drivers/input/mouse/byd.c
484
psmouse->resync_time = 0;
drivers/input/mouse/byd.h
5
int byd_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/byd.h
6
int byd_init(struct psmouse *psmouse);
drivers/input/mouse/cypress_ps2.c
120
psmouse_dbg(psmouse, "verify cmd state failed.\n");
drivers/input/mouse/cypress_ps2.c
124
static int cypress_send_ext_cmd(struct psmouse *psmouse, u8 cmd, u8 *param)
drivers/input/mouse/cypress_ps2.c
132
psmouse_dbg(psmouse, "send extension cmd 0x%02x, [%d %d %d %d]\n",
drivers/input/mouse/cypress_ps2.c
137
cypress_ps2_ext_cmd(psmouse, cmd_prefix, DECODE_CMD_DD(cmd));
drivers/input/mouse/cypress_ps2.c
138
cypress_ps2_ext_cmd(psmouse, cmd_prefix, DECODE_CMD_CC(cmd));
drivers/input/mouse/cypress_ps2.c
139
cypress_ps2_ext_cmd(psmouse, cmd_prefix, DECODE_CMD_BB(cmd));
drivers/input/mouse/cypress_ps2.c
140
cypress_ps2_ext_cmd(psmouse, cmd_prefix, DECODE_CMD_AA(cmd));
drivers/input/mouse/cypress_ps2.c
142
error = ps2_command(&psmouse->ps2dev, param, ps2_cmd);
drivers/input/mouse/cypress_ps2.c
144
psmouse_dbg(psmouse, "Command 0x%02x failed: %d\n",
drivers/input/mouse/cypress_ps2.c
147
psmouse_dbg(psmouse,
drivers/input/mouse/cypress_ps2.c
151
if (cypress_verify_cmd_state(psmouse, cmd, param))
drivers/input/mouse/cypress_ps2.c
159
int cypress_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/cypress_ps2.c
163
if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_CYPRESS_ID, param))
drivers/input/mouse/cypress_ps2.c
171
psmouse->vendor = "Cypress";
drivers/input/mouse/cypress_ps2.c
172
psmouse->name = "Trackpad";
drivers/input/mouse/cypress_ps2.c
178
static int cypress_read_fw_version(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
180
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
183
if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_CYPRESS_ID, param))
drivers/input/mouse/cypress_ps2.c
200
psmouse_dbg(psmouse, "cytp->fw_version = %d\n", cytp->fw_version);
drivers/input/mouse/cypress_ps2.c
201
psmouse_dbg(psmouse, "cytp->tp_metrics_supported = %d\n",
drivers/input/mouse/cypress_ps2.c
207
static int cypress_read_tp_metrics(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
209
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
226
if (cypress_send_ext_cmd(psmouse, CYTP_CMD_READ_TP_METRICS, param) == 0) {
drivers/input/mouse/cypress_ps2.c
247
psmouse_dbg(psmouse, "Dump trackpad hardware configuration as below:\n");
drivers/input/mouse/cypress_ps2.c
248
psmouse_dbg(psmouse, "cytp->tp_width = %d\n", cytp->tp_width);
drivers/input/mouse/cypress_ps2.c
249
psmouse_dbg(psmouse, "cytp->tp_high = %d\n", cytp->tp_high);
drivers/input/mouse/cypress_ps2.c
250
psmouse_dbg(psmouse, "cytp->tp_max_abs_x = %d\n", cytp->tp_max_abs_x);
drivers/input/mouse/cypress_ps2.c
251
psmouse_dbg(psmouse, "cytp->tp_max_abs_y = %d\n", cytp->tp_max_abs_y);
drivers/input/mouse/cypress_ps2.c
252
psmouse_dbg(psmouse, "cytp->tp_min_pressure = %d\n", cytp->tp_min_pressure);
drivers/input/mouse/cypress_ps2.c
253
psmouse_dbg(psmouse, "cytp->tp_max_pressure = %d\n", cytp->tp_max_pressure);
drivers/input/mouse/cypress_ps2.c
254
psmouse_dbg(psmouse, "cytp->tp_res_x = %d\n", cytp->tp_res_x);
drivers/input/mouse/cypress_ps2.c
255
psmouse_dbg(psmouse, "cytp->tp_res_y = %d\n", cytp->tp_res_y);
drivers/input/mouse/cypress_ps2.c
257
psmouse_dbg(psmouse, "tp_type_APA = %d\n",
drivers/input/mouse/cypress_ps2.c
259
psmouse_dbg(psmouse, "tp_type_MTG = %d\n",
drivers/input/mouse/cypress_ps2.c
261
psmouse_dbg(psmouse, "tp_palm = %d\n",
drivers/input/mouse/cypress_ps2.c
263
psmouse_dbg(psmouse, "tp_stubborn = %d\n",
drivers/input/mouse/cypress_ps2.c
265
psmouse_dbg(psmouse, "tp_1f_jitter = %d\n",
drivers/input/mouse/cypress_ps2.c
267
psmouse_dbg(psmouse, "tp_2f_jitter = %d\n",
drivers/input/mouse/cypress_ps2.c
269
psmouse_dbg(psmouse, "tp_1f_spike = %d\n",
drivers/input/mouse/cypress_ps2.c
271
psmouse_dbg(psmouse, "tp_2f_spike = %d\n",
drivers/input/mouse/cypress_ps2.c
273
psmouse_dbg(psmouse, "tp_abs_packet_format_set = %d\n",
drivers/input/mouse/cypress_ps2.c
280
static int cypress_query_hardware(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
284
error = cypress_read_fw_version(psmouse);
drivers/input/mouse/cypress_ps2.c
288
error = cypress_read_tp_metrics(psmouse);
drivers/input/mouse/cypress_ps2.c
29
static void cypress_set_packet_size(struct psmouse *psmouse, unsigned int n)
drivers/input/mouse/cypress_ps2.c
295
static int cypress_set_absolute_mode(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
297
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
301
error = cypress_send_ext_cmd(psmouse, CYTP_CMD_ABS_WITH_PRESSURE_MODE,
drivers/input/mouse/cypress_ps2.c
308
cypress_set_packet_size(psmouse, 5);
drivers/input/mouse/cypress_ps2.c
31
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
317
static void cypress_reset(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
319
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
323
psmouse_reset(psmouse);
drivers/input/mouse/cypress_ps2.c
38
static int cypress_ps2_sendbyte(struct psmouse *psmouse, u8 cmd)
drivers/input/mouse/cypress_ps2.c
40
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/cypress_ps2.c
404
static int cypress_parse_packet(struct psmouse *psmouse,
drivers/input/mouse/cypress_ps2.c
408
u8 *packet = psmouse->packet;
drivers/input/mouse/cypress_ps2.c
45
psmouse_dbg(psmouse,
drivers/input/mouse/cypress_ps2.c
456
psmouse_dbg(psmouse, "Dump parsed report data as below:\n");
drivers/input/mouse/cypress_ps2.c
457
psmouse_dbg(psmouse, "contact_cnt = %d\n",
drivers/input/mouse/cypress_ps2.c
462
psmouse_dbg(psmouse, "contacts[%d] = {%d, %d, %d}\n", i,
drivers/input/mouse/cypress_ps2.c
466
psmouse_dbg(psmouse, "left = %d\n", report_data->left);
drivers/input/mouse/cypress_ps2.c
467
psmouse_dbg(psmouse, "right = %d\n", report_data->right);
drivers/input/mouse/cypress_ps2.c
468
psmouse_dbg(psmouse, "middle = %d\n", report_data->middle);
drivers/input/mouse/cypress_ps2.c
475
static void cypress_process_packet(struct psmouse *psmouse, bool zero_pkt)
drivers/input/mouse/cypress_ps2.c
478
struct input_dev *input = psmouse->dev;
drivers/input/mouse/cypress_ps2.c
479
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
486
cypress_parse_packet(psmouse, cytp, &report_data);
drivers/input/mouse/cypress_ps2.c
52
psmouse_dbg(psmouse, "sending command 0x%02x succeeded\n", cmd);
drivers/input/mouse/cypress_ps2.c
520
static psmouse_ret_t cypress_validate_byte(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
523
int index = psmouse->pktcnt - 1;
drivers/input/mouse/cypress_ps2.c
524
u8 *packet = psmouse->packet;
drivers/input/mouse/cypress_ps2.c
525
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
532
cypress_process_packet(psmouse, 1);
drivers/input/mouse/cypress_ps2.c
555
cypress_set_packet_size(psmouse, contact_cnt == 2 ? 7 : 4);
drivers/input/mouse/cypress_ps2.c
557
cypress_set_packet_size(psmouse, contact_cnt == 2 ? 8 : 5);
drivers/input/mouse/cypress_ps2.c
562
static psmouse_ret_t cypress_protocol_handler(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
564
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
566
if (psmouse->pktcnt >= cytp->pkt_size) {
drivers/input/mouse/cypress_ps2.c
567
cypress_process_packet(psmouse, 0);
drivers/input/mouse/cypress_ps2.c
571
return cypress_validate_byte(psmouse);
drivers/input/mouse/cypress_ps2.c
574
static void cypress_set_rate(struct psmouse *psmouse, unsigned int rate)
drivers/input/mouse/cypress_ps2.c
576
struct cytp_data *cytp = psmouse->private;
drivers/input/mouse/cypress_ps2.c
58
static int cypress_ps2_ext_cmd(struct psmouse *psmouse, u8 prefix, u8 nibble)
drivers/input/mouse/cypress_ps2.c
580
psmouse->rate = 80;
drivers/input/mouse/cypress_ps2.c
583
psmouse->rate = 40;
drivers/input/mouse/cypress_ps2.c
588
ps2_command(&psmouse->ps2dev, &rate_param, PSMOUSE_CMD_SETRATE);
drivers/input/mouse/cypress_ps2.c
591
static void cypress_disconnect(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
593
cypress_reset(psmouse);
drivers/input/mouse/cypress_ps2.c
594
kfree(psmouse->private);
drivers/input/mouse/cypress_ps2.c
595
psmouse->private = NULL;
drivers/input/mouse/cypress_ps2.c
598
static int cypress_reconnect(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
60
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/cypress_ps2.c
604
cypress_reset(psmouse);
drivers/input/mouse/cypress_ps2.c
605
error = cypress_detect(psmouse, false);
drivers/input/mouse/cypress_ps2.c
609
psmouse_err(psmouse, "Reconnect: unable to detect trackpad.\n");
drivers/input/mouse/cypress_ps2.c
613
error = cypress_set_absolute_mode(psmouse);
drivers/input/mouse/cypress_ps2.c
615
psmouse_err(psmouse, "Reconnect: Unable to initialize Cypress absolute mode.\n");
drivers/input/mouse/cypress_ps2.c
622
int cypress_init(struct psmouse *psmouse)
drivers/input/mouse/cypress_ps2.c
631
psmouse->private = cytp;
drivers/input/mouse/cypress_ps2.c
632
psmouse->pktsize = 8;
drivers/input/mouse/cypress_ps2.c
634
cypress_reset(psmouse);
drivers/input/mouse/cypress_ps2.c
636
error = cypress_query_hardware(psmouse);
drivers/input/mouse/cypress_ps2.c
638
psmouse_err(psmouse, "Unable to query Trackpad hardware.\n");
drivers/input/mouse/cypress_ps2.c
642
error = cypress_set_absolute_mode(psmouse);
drivers/input/mouse/cypress_ps2.c
644
psmouse_err(psmouse, "init: Unable to initialize Cypress absolute mode.\n");
drivers/input/mouse/cypress_ps2.c
648
error = cypress_set_input_params(psmouse->dev, cytp);
drivers/input/mouse/cypress_ps2.c
650
psmouse_err(psmouse, "init: Unable to set input params.\n");
drivers/input/mouse/cypress_ps2.c
654
psmouse->model = 1;
drivers/input/mouse/cypress_ps2.c
655
psmouse->protocol_handler = cypress_protocol_handler;
drivers/input/mouse/cypress_ps2.c
656
psmouse->set_rate = cypress_set_rate;
drivers/input/mouse/cypress_ps2.c
657
psmouse->disconnect = cypress_disconnect;
drivers/input/mouse/cypress_ps2.c
658
psmouse->reconnect = cypress_reconnect;
drivers/input/mouse/cypress_ps2.c
659
psmouse->cleanup = cypress_reset;
drivers/input/mouse/cypress_ps2.c
660
psmouse->resync_time = 0;
drivers/input/mouse/cypress_ps2.c
669
cypress_reset(psmouse);
drivers/input/mouse/cypress_ps2.c
671
psmouse->private = NULL;
drivers/input/mouse/cypress_ps2.c
72
rc = cypress_ps2_sendbyte(psmouse, prefix);
drivers/input/mouse/cypress_ps2.c
74
rc = cypress_ps2_sendbyte(psmouse, 0x00);
drivers/input/mouse/cypress_ps2.c
76
rc = cypress_ps2_sendbyte(psmouse, 0x0a);
drivers/input/mouse/cypress_ps2.c
80
rc = cypress_ps2_sendbyte(psmouse, nibble);
drivers/input/mouse/cypress_ps2.c
82
rc = cypress_ps2_sendbyte(psmouse, nibble);
drivers/input/mouse/cypress_ps2.c
94
static bool cypress_verify_cmd_state(struct psmouse *psmouse, u8 cmd, u8* param)
drivers/input/mouse/cypress_ps2.h
167
int cypress_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/cypress_ps2.h
168
int cypress_init(struct psmouse *psmouse);
drivers/input/mouse/elantech.c
100
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
1000
static void elantech_set_rate_restore_reg_07(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
1003
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
1005
etd->original_set_rate(psmouse, rate);
drivers/input/mouse/elantech.c
1006
if (elantech_write_reg(psmouse, 0x07, etd->reg_07))
drivers/input/mouse/elantech.c
1007
psmouse_err(psmouse, "restoring reg_07 failed\n");
drivers/input/mouse/elantech.c
101
elantech_ps2_command(psmouse, param, PSMOUSE_CMD_GETINFO)) {
drivers/input/mouse/elantech.c
1013
static int elantech_set_absolute_mode(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
1015
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
102
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
1024
if (elantech_write_reg(psmouse, 0x10, etd->reg_10) ||
drivers/input/mouse/elantech.c
1025
elantech_write_reg(psmouse, 0x11, etd->reg_11)) {
drivers/input/mouse/elantech.c
1035
if (elantech_write_reg(psmouse, 0x10, etd->reg_10) ||
drivers/input/mouse/elantech.c
1036
elantech_write_reg(psmouse, 0x11, etd->reg_11) ||
drivers/input/mouse/elantech.c
1037
elantech_write_reg(psmouse, 0x21, etd->reg_21)) {
drivers/input/mouse/elantech.c
1048
if (elantech_write_reg(psmouse, 0x10, etd->reg_10))
drivers/input/mouse/elantech.c
1055
if (elantech_write_reg(psmouse, 0x07, etd->reg_07))
drivers/input/mouse/elantech.c
1069
rc = elantech_read_reg(psmouse, 0x10, &val);
drivers/input/mouse/elantech.c
1078
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
1082
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
1090
psmouse_err(psmouse, "failed to initialise registers.\n");
drivers/input/mouse/elantech.c
1104
static int elantech_get_resolution_v4(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
1111
if (elantech_send_cmd(psmouse, ETP_RESOLUTION_QUERY, param))
drivers/input/mouse/elantech.c
1121
static void elantech_set_buttonpad_prop(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
1123
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
1124
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
113
static int elantech_write_reg_params(struct psmouse *psmouse, u8 reg, u8 *param)
drivers/input/mouse/elantech.c
115
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
116
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
drivers/input/mouse/elantech.c
1165
static int elantech_set_input_params(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
1167
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
1168
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
117
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
118
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
119
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
120
elantech_ps2_command(psmouse, NULL, param[0]) ||
drivers/input/mouse/elantech.c
1207
elantech_set_buttonpad_prop(psmouse);
drivers/input/mouse/elantech.c
121
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
122
elantech_ps2_command(psmouse, NULL, param[1]) ||
drivers/input/mouse/elantech.c
1222
elantech_set_buttonpad_prop(psmouse);
drivers/input/mouse/elantech.c
123
elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) {
drivers/input/mouse/elantech.c
124
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
1271
static ssize_t elantech_show_int_attr(struct psmouse *psmouse, void *data,
drivers/input/mouse/elantech.c
1274
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
1280
rc = elantech_read_reg(psmouse, attr->reg, reg);
drivers/input/mouse/elantech.c
1288
static ssize_t elantech_set_int_attr(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
1291
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
1311
if (!attr->reg || elantech_write_reg(psmouse, attr->reg, value) == 0)
drivers/input/mouse/elantech.c
136
static int elantech_read_reg(struct psmouse *psmouse, unsigned char reg,
drivers/input/mouse/elantech.c
139
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
1402
int elantech_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/elantech.c
1404
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/elantech.c
1414
psmouse_dbg(psmouse, "sending Elantech magic knock failed.\n");
drivers/input/mouse/elantech.c
1424
psmouse_dbg(psmouse,
drivers/input/mouse/elantech.c
1435
if (synaptics_send_cmd(psmouse, ETP_FW_VERSION_QUERY, param)) {
drivers/input/mouse/elantech.c
1436
psmouse_dbg(psmouse, "failed to query firmware version.\n");
drivers/input/mouse/elantech.c
1440
psmouse_dbg(psmouse,
drivers/input/mouse/elantech.c
1445
psmouse_dbg(psmouse,
drivers/input/mouse/elantech.c
1451
psmouse->vendor = "Elantech";
drivers/input/mouse/elantech.c
1452
psmouse->name = "Touchpad";
drivers/input/mouse/elantech.c
1461
static void elantech_disconnect(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
1463
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
1469
psmouse_smbus_cleanup(psmouse);
drivers/input/mouse/elantech.c
1473
sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj,
drivers/input/mouse/elantech.c
1475
kfree(psmouse->private);
drivers/input/mouse/elantech.c
1476
psmouse->private = NULL;
drivers/input/mouse/elantech.c
1499
static int elantech_reconnect(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
1503
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
1505
if (elantech_detect(psmouse, 0))
drivers/input/mouse/elantech.c
1509
err = ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE);
drivers/input/mouse/elantech.c
151
if (ps2_sliced_command(&psmouse->ps2dev, ETP_REGISTER_READ) ||
drivers/input/mouse/elantech.c
1511
psmouse_warn(psmouse, "failed to deactivate mouse on %s: %d\n",
drivers/input/mouse/elantech.c
1512
psmouse->ps2dev.serio->phys, err);
drivers/input/mouse/elantech.c
1514
err = ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE);
drivers/input/mouse/elantech.c
1516
psmouse_warn(psmouse, "failed to reactivate mouse on %s: %d\n",
drivers/input/mouse/elantech.c
1517
psmouse->ps2dev.serio->phys, err);
drivers/input/mouse/elantech.c
152
ps2_sliced_command(&psmouse->ps2dev, reg) ||
drivers/input/mouse/elantech.c
1520
if (elantech_set_absolute_mode(psmouse)) {
drivers/input/mouse/elantech.c
1521
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
153
ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) {
drivers/input/mouse/elantech.c
159
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
160
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READ) ||
drivers/input/mouse/elantech.c
161
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
162
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
1621
static int elantech_change_report_id(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
163
elantech_ps2_command(psmouse, param, PSMOUSE_CMD_GETINFO)) {
drivers/input/mouse/elantech.c
1631
if (elantech_write_reg_params(psmouse, 0x7, param) ||
drivers/input/mouse/elantech.c
1632
elantech_read_reg_params(psmouse, 0x7, param) ||
drivers/input/mouse/elantech.c
1634
psmouse_err(psmouse, "Unable to change report ID to 0x5f.\n");
drivers/input/mouse/elantech.c
169
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
170
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
drivers/input/mouse/elantech.c
1709
static int elantech_query_info(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
171
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
172
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
1721
if (synaptics_send_cmd(psmouse, ETP_FW_VERSION_QUERY, param)) {
drivers/input/mouse/elantech.c
1722
psmouse_err(psmouse, "failed to query firmware version.\n");
drivers/input/mouse/elantech.c
1728
psmouse_err(psmouse, "unknown hardware version, aborting...\n");
drivers/input/mouse/elantech.c
173
elantech_ps2_command(psmouse, param, PSMOUSE_CMD_GETINFO)) {
drivers/input/mouse/elantech.c
1731
psmouse_info(psmouse,
drivers/input/mouse/elantech.c
1735
if (info->send_cmd(psmouse, ETP_CAPABILITIES_QUERY,
drivers/input/mouse/elantech.c
1737
psmouse_err(psmouse, "failed to query capabilities.\n");
drivers/input/mouse/elantech.c
1740
psmouse_info(psmouse,
drivers/input/mouse/elantech.c
1746
if (info->send_cmd(psmouse, ETP_SAMPLE_QUERY, info->samples)) {
drivers/input/mouse/elantech.c
1747
psmouse_err(psmouse, "failed to query sample data\n");
drivers/input/mouse/elantech.c
1750
psmouse_info(psmouse,
drivers/input/mouse/elantech.c
1758
if (info->send_cmd(psmouse, ETP_ICBODY_QUERY, ic_body)) {
drivers/input/mouse/elantech.c
1759
psmouse_err(psmouse, "failed to query ic body\n");
drivers/input/mouse/elantech.c
1763
psmouse_info(psmouse,
drivers/input/mouse/elantech.c
1778
psmouse_info(psmouse,
drivers/input/mouse/elantech.c
1796
if (elantech_change_report_id(psmouse)) {
drivers/input/mouse/elantech.c
1797
psmouse_info(psmouse,
drivers/input/mouse/elantech.c
180
psmouse_err(psmouse, "failed to read register 0x%02x.\n", reg);
drivers/input/mouse/elantech.c
1806
if (elantech_get_resolution_v4(psmouse,
drivers/input/mouse/elantech.c
1810
psmouse_warn(psmouse,
drivers/input/mouse/elantech.c
1839
if (info->send_cmd(psmouse, ETP_FW_ID_QUERY, param))
drivers/input/mouse/elantech.c
1845
if (info->send_cmd(psmouse, ETP_SAMPLE_QUERY, param))
drivers/input/mouse/elantech.c
1864
if (info->send_cmd(psmouse, ETP_FW_ID_QUERY, param))
drivers/input/mouse/elantech.c
1872
if (info->send_cmd(psmouse, ETP_FW_ID_QUERY, param))
drivers/input/mouse/elantech.c
192
static int elantech_write_reg(struct psmouse *psmouse, unsigned char reg,
drivers/input/mouse/elantech.c
1928
static int elantech_create_smbus(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
195
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
1974
return psmouse_smbus_init(psmouse, &smbus_board, NULL, 0, false,
drivers/input/mouse/elantech.c
1982
static int elantech_setup_smbus(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
1998
psmouse_matches_pnp_id(psmouse, i2c_blacklist_pnp_ids))
drivers/input/mouse/elantech.c
2002
psmouse_info(psmouse, "Trying to set up SMBus access\n");
drivers/input/mouse/elantech.c
2004
error = elantech_create_smbus(psmouse, info, leave_breadcrumbs);
drivers/input/mouse/elantech.c
2007
psmouse_info(psmouse, "SMbus companion is not ready yet\n");
drivers/input/mouse/elantech.c
2009
psmouse_err(psmouse, "unable to create intertouch device\n");
drivers/input/mouse/elantech.c
2017
static bool elantech_use_host_notify(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
2029
psmouse_dbg(psmouse, "Ignoring SMBus provider through alert protocol.\n");
drivers/input/mouse/elantech.c
2035
psmouse_dbg(psmouse,
drivers/input/mouse/elantech.c
2043
int elantech_init_smbus(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
2048
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
2050
error = elantech_query_info(psmouse, &info);
drivers/input/mouse/elantech.c
2059
return elantech_create_smbus(psmouse, &info, false);
drivers/input/mouse/elantech.c
206
if (ps2_sliced_command(&psmouse->ps2dev, ETP_REGISTER_WRITE) ||
drivers/input/mouse/elantech.c
2061
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
2069
static int elantech_setup_ps2(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
207
ps2_sliced_command(&psmouse->ps2dev, reg) ||
drivers/input/mouse/elantech.c
2077
psmouse->private = etd = kzalloc_obj(*etd);
drivers/input/mouse/elantech.c
208
ps2_sliced_command(&psmouse->ps2dev, val) ||
drivers/input/mouse/elantech.c
2087
if (elantech_set_absolute_mode(psmouse)) {
drivers/input/mouse/elantech.c
2088
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
209
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_SETSCALE11)) {
drivers/input/mouse/elantech.c
2094
etd->original_set_rate = psmouse->set_rate;
drivers/input/mouse/elantech.c
2095
psmouse->set_rate = elantech_set_rate_restore_reg_07;
drivers/input/mouse/elantech.c
2098
if (elantech_set_input_params(psmouse)) {
drivers/input/mouse/elantech.c
2099
psmouse_err(psmouse, "failed to query touchpad range.\n");
drivers/input/mouse/elantech.c
2103
error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj,
drivers/input/mouse/elantech.c
2106
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
2122
psmouse->ps2dev.serio->phys);
drivers/input/mouse/elantech.c
2129
tp_dev->dev.parent = &psmouse->ps2dev.serio->dev;
drivers/input/mouse/elantech.c
2145
psmouse->protocol_handler = elantech_process_byte;
drivers/input/mouse/elantech.c
2146
psmouse->disconnect = elantech_disconnect;
drivers/input/mouse/elantech.c
2147
psmouse->reconnect = elantech_reconnect;
drivers/input/mouse/elantech.c
2148
psmouse->fast_reconnect = NULL;
drivers/input/mouse/elantech.c
2149
psmouse->pktsize = info->hw_version > 1 ? 6 : 4;
drivers/input/mouse/elantech.c
215
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
2155
sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj,
drivers/input/mouse/elantech.c
216
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_WRITE) ||
drivers/input/mouse/elantech.c
2162
int elantech_init_ps2(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
2167
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
2169
error = elantech_query_info(psmouse, &info);
drivers/input/mouse/elantech.c
217
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
2173
error = elantech_setup_ps2(psmouse, &info);
drivers/input/mouse/elantech.c
2179
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
218
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
2183
int elantech_init(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
2188
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
219
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
2190
error = elantech_query_info(psmouse, &info);
drivers/input/mouse/elantech.c
2196
if (elantech_use_host_notify(psmouse, &info)) {
drivers/input/mouse/elantech.c
2199
psmouse_warn(psmouse,
drivers/input/mouse/elantech.c
220
elantech_ps2_command(psmouse, NULL, val) ||
drivers/input/mouse/elantech.c
2203
error = elantech_setup_smbus(psmouse, &info, true);
drivers/input/mouse/elantech.c
221
elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) {
drivers/input/mouse/elantech.c
2210
error = elantech_setup_ps2(psmouse, &info);
drivers/input/mouse/elantech.c
2216
psmouse_smbus_cleanup(psmouse);
drivers/input/mouse/elantech.c
2222
psmouse_reset(psmouse);
drivers/input/mouse/elantech.c
227
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
228
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
drivers/input/mouse/elantech.c
229
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
230
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
231
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
232
elantech_ps2_command(psmouse, NULL, val) ||
drivers/input/mouse/elantech.c
233
elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) {
drivers/input/mouse/elantech.c
239
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
240
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
drivers/input/mouse/elantech.c
241
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
242
elantech_ps2_command(psmouse, NULL, reg) ||
drivers/input/mouse/elantech.c
243
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
244
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
drivers/input/mouse/elantech.c
245
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
246
elantech_ps2_command(psmouse, NULL, val) ||
drivers/input/mouse/elantech.c
247
elantech_ps2_command(psmouse, NULL, PSMOUSE_CMD_SETSCALE11)) {
drivers/input/mouse/elantech.c
254
psmouse_err(psmouse,
drivers/input/mouse/elantech.c
264
static void elantech_packet_dump(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
266
psmouse_printk(KERN_DEBUG, psmouse, "PS/2 packet [%*ph]\n",
drivers/input/mouse/elantech.c
267
psmouse->pktsize, psmouse->packet);
drivers/input/mouse/elantech.c
28
psmouse_printk(KERN_DEBUG, psmouse, \
drivers/input/mouse/elantech.c
320
static void elantech_report_absolute_v1(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
322
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
323
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
324
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
35
static int synaptics_send_cmd(struct psmouse *psmouse, unsigned char c,
drivers/input/mouse/elantech.c
38
if (ps2_sliced_command(&psmouse->ps2dev, c) ||
drivers/input/mouse/elantech.c
39
ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO)) {
drivers/input/mouse/elantech.c
40
psmouse_err(psmouse, "%s query 0x%02x failed.\n", __func__, c);
drivers/input/mouse/elantech.c
408
static void elantech_report_absolute_v2(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
410
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
411
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
412
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
489
static void elantech_report_trackpoint(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
50
static int elantech_send_cmd(struct psmouse *psmouse, unsigned char c,
drivers/input/mouse/elantech.c
507
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
509
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
53
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/elantech.c
548
elantech_packet_dump(psmouse);
drivers/input/mouse/elantech.c
558
static void elantech_report_absolute_v3(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
561
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
562
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
563
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
58
psmouse_err(psmouse, "%s query 0x%02x failed.\n", __func__, c);
drivers/input/mouse/elantech.c
637
static void elantech_input_sync_v4(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
639
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
640
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
641
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
653
static void process_packet_status_v4(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
655
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
656
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
669
elantech_input_sync_v4(psmouse);
drivers/input/mouse/elantech.c
672
static void process_packet_head_v4(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
674
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
675
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
676
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
68
static int elantech_ps2_command(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
699
elantech_input_sync_v4(psmouse);
drivers/input/mouse/elantech.c
702
static void process_packet_motion_v4(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
704
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/elantech.c
705
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
706
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
71
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/elantech.c
72
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
740
elantech_input_sync_v4(psmouse);
drivers/input/mouse/elantech.c
743
static void elantech_report_absolute_v4(struct psmouse *psmouse,
drivers/input/mouse/elantech.c
748
process_packet_status_v4(psmouse);
drivers/input/mouse/elantech.c
752
process_packet_head_v4(psmouse);
drivers/input/mouse/elantech.c
756
process_packet_motion_v4(psmouse);
drivers/input/mouse/elantech.c
766
static int elantech_packet_check_v1(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
768
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
769
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
790
static int elantech_debounce_check_v2(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
799
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
804
static int elantech_packet_check_v2(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
806
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
807
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
836
static int elantech_packet_check_v3(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
838
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
842
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
87
psmouse_err(psmouse, "ps2 command 0x%02x failed.\n", command);
drivers/input/mouse/elantech.c
874
static int elantech_packet_check_v4(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
876
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
877
unsigned char *packet = psmouse->packet;
drivers/input/mouse/elantech.c
923
static psmouse_ret_t elantech_process_byte(struct psmouse *psmouse)
drivers/input/mouse/elantech.c
925
struct elantech_data *etd = psmouse->private;
drivers/input/mouse/elantech.c
928
if (psmouse->pktcnt < psmouse->pktsize)
drivers/input/mouse/elantech.c
932
elantech_packet_dump(psmouse);
drivers/input/mouse/elantech.c
936
if (etd->info.paritycheck && !elantech_packet_check_v1(psmouse))
drivers/input/mouse/elantech.c
939
elantech_report_absolute_v1(psmouse);
drivers/input/mouse/elantech.c
944
if (elantech_debounce_check_v2(psmouse))
drivers/input/mouse/elantech.c
947
if (etd->info.paritycheck && !elantech_packet_check_v2(psmouse))
drivers/input/mouse/elantech.c
95
static int elantech_read_reg_params(struct psmouse *psmouse, u8 reg, u8 *param)
drivers/input/mouse/elantech.c
950
elantech_report_absolute_v2(psmouse);
drivers/input/mouse/elantech.c
954
packet_type = elantech_packet_check_v3(psmouse);
drivers/input/mouse/elantech.c
964
elantech_report_trackpoint(psmouse, packet_type);
drivers/input/mouse/elantech.c
968
elantech_report_absolute_v3(psmouse, packet_type);
drivers/input/mouse/elantech.c
97
if (elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.c
975
packet_type = elantech_packet_check_v4(psmouse);
drivers/input/mouse/elantech.c
98
elantech_ps2_command(psmouse, NULL, ETP_REGISTER_READWRITE) ||
drivers/input/mouse/elantech.c
981
elantech_report_trackpoint(psmouse, packet_type);
drivers/input/mouse/elantech.c
985
elantech_report_absolute_v4(psmouse, packet_type);
drivers/input/mouse/elantech.c
99
elantech_ps2_command(psmouse, NULL, ETP_PS2_CUSTOM_COMMAND) ||
drivers/input/mouse/elantech.h
165
int (*send_cmd)(struct psmouse *psmouse, unsigned char c,
drivers/input/mouse/elantech.h
188
void (*original_set_rate)(struct psmouse *psmouse, unsigned int rate);
drivers/input/mouse/elantech.h
191
int elantech_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/elantech.h
192
int elantech_init_ps2(struct psmouse *psmouse);
drivers/input/mouse/elantech.h
195
int elantech_init(struct psmouse *psmouse);
drivers/input/mouse/elantech.h
197
static inline int elantech_init(struct psmouse *psmouse)
drivers/input/mouse/elantech.h
203
int elantech_init_smbus(struct psmouse *psmouse);
drivers/input/mouse/focaltech.c
115
static void focaltech_report_state(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
117
struct focaltech_data *priv = psmouse->private;
drivers/input/mouse/focaltech.c
119
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/focaltech.c
149
static void focaltech_process_touch_packet(struct psmouse *psmouse,
drivers/input/mouse/focaltech.c
152
struct focaltech_data *priv = psmouse->private;
drivers/input/mouse/focaltech.c
173
static void focaltech_process_abs_packet(struct psmouse *psmouse,
drivers/input/mouse/focaltech.c
176
struct focaltech_data *priv = psmouse->private;
drivers/input/mouse/focaltech.c
182
psmouse_err(psmouse, "Invalid finger in abs packet: %d\n",
drivers/input/mouse/focaltech.c
195
static void focaltech_process_rel_packet(struct psmouse *psmouse,
drivers/input/mouse/focaltech.c
198
struct focaltech_data *priv = psmouse->private;
drivers/input/mouse/focaltech.c
208
psmouse_err(psmouse, "First finger in rel packet invalid: %d\n",
drivers/input/mouse/focaltech.c
226
static void focaltech_process_packet(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
228
unsigned char *packet = psmouse->packet;
drivers/input/mouse/focaltech.c
232
focaltech_process_touch_packet(psmouse, packet);
drivers/input/mouse/focaltech.c
236
focaltech_process_abs_packet(psmouse, packet);
drivers/input/mouse/focaltech.c
240
focaltech_process_rel_packet(psmouse, packet);
drivers/input/mouse/focaltech.c
244
psmouse_err(psmouse, "Unknown packet type: %02x\n", packet[0]);
drivers/input/mouse/focaltech.c
248
focaltech_report_state(psmouse);
drivers/input/mouse/focaltech.c
251
static psmouse_ret_t focaltech_process_byte(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
253
if (psmouse->pktcnt >= 6) { /* Full packet received */
drivers/input/mouse/focaltech.c
254
focaltech_process_packet(psmouse);
drivers/input/mouse/focaltech.c
265
static int focaltech_switch_protocol(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
267
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/focaltech.c
293
static void focaltech_reset(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
295
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
drivers/input/mouse/focaltech.c
296
psmouse_reset(psmouse);
drivers/input/mouse/focaltech.c
299
static void focaltech_disconnect(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
301
focaltech_reset(psmouse);
drivers/input/mouse/focaltech.c
302
kfree(psmouse->private);
drivers/input/mouse/focaltech.c
303
psmouse->private = NULL;
drivers/input/mouse/focaltech.c
306
static int focaltech_reconnect(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
310
focaltech_reset(psmouse);
drivers/input/mouse/focaltech.c
312
error = focaltech_switch_protocol(psmouse);
drivers/input/mouse/focaltech.c
314
psmouse_err(psmouse, "Unable to initialize the device\n");
drivers/input/mouse/focaltech.c
321
static void focaltech_set_input_params(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
323
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/focaltech.c
324
struct focaltech_data *priv = psmouse->private;
drivers/input/mouse/focaltech.c
35
int focaltech_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/focaltech.c
37
if (!psmouse_matches_pnp_id(psmouse, focaltech_pnp_ids))
drivers/input/mouse/focaltech.c
373
static int focaltech_read_size(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
375
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/focaltech.c
376
struct focaltech_data *priv = psmouse->private;
drivers/input/mouse/focaltech.c
389
static void focaltech_set_resolution(struct psmouse *psmouse,
drivers/input/mouse/focaltech.c
395
static void focaltech_set_rate(struct psmouse *psmouse, unsigned int rate)
drivers/input/mouse/focaltech.c
400
static void focaltech_set_scale(struct psmouse *psmouse,
drivers/input/mouse/focaltech.c
406
int focaltech_init(struct psmouse *psmouse)
drivers/input/mouse/focaltech.c
41
psmouse->vendor = "FocalTech";
drivers/input/mouse/focaltech.c
411
psmouse->private = priv = kzalloc_obj(*priv);
drivers/input/mouse/focaltech.c
415
focaltech_reset(psmouse);
drivers/input/mouse/focaltech.c
417
error = focaltech_read_size(psmouse);
drivers/input/mouse/focaltech.c
419
psmouse_err(psmouse,
drivers/input/mouse/focaltech.c
42
psmouse->name = "Touchpad";
drivers/input/mouse/focaltech.c
424
error = focaltech_switch_protocol(psmouse);
drivers/input/mouse/focaltech.c
426
psmouse_err(psmouse, "Unable to initialize the device\n");
drivers/input/mouse/focaltech.c
430
focaltech_set_input_params(psmouse);
drivers/input/mouse/focaltech.c
432
psmouse->protocol_handler = focaltech_process_byte;
drivers/input/mouse/focaltech.c
433
psmouse->pktsize = 6;
drivers/input/mouse/focaltech.c
434
psmouse->disconnect = focaltech_disconnect;
drivers/input/mouse/focaltech.c
435
psmouse->reconnect = focaltech_reconnect;
drivers/input/mouse/focaltech.c
436
psmouse->cleanup = focaltech_reset;
drivers/input/mouse/focaltech.c
438
psmouse->resync_time = 0;
drivers/input/mouse/focaltech.c
444
psmouse->set_resolution = focaltech_set_resolution;
drivers/input/mouse/focaltech.c
445
psmouse->set_rate = focaltech_set_rate;
drivers/input/mouse/focaltech.c
446
psmouse->set_scale = focaltech_set_scale;
drivers/input/mouse/focaltech.c
451
focaltech_reset(psmouse);
drivers/input/mouse/focaltech.h
16
int focaltech_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/focaltech.h
19
int focaltech_init(struct psmouse *psmouse);
drivers/input/mouse/focaltech.h
21
static inline int focaltech_init(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
1001
err = hgpk_register(psmouse);
drivers/input/mouse/hgpk.c
1013
static enum hgpk_model_t hgpk_get_model(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
1015
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/hgpk.c
1026
psmouse_dbg(psmouse, "ID: %*ph\n", 3, param);
drivers/input/mouse/hgpk.c
1032
psmouse_info(psmouse, "OLPC touchpad revision 0x%x\n", param[2]);
drivers/input/mouse/hgpk.c
1037
int hgpk_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/hgpk.c
1041
version = hgpk_get_model(psmouse);
drivers/input/mouse/hgpk.c
1046
psmouse->vendor = "ALPS";
drivers/input/mouse/hgpk.c
1047
psmouse->name = "HGPK";
drivers/input/mouse/hgpk.c
1048
psmouse->model = version;
drivers/input/mouse/hgpk.c
124
static int hgpk_discard_decay_hack(struct psmouse *psmouse, int x, int y)
drivers/input/mouse/hgpk.c
126
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
136
psmouse_warn(psmouse, "detected %dpx jump in x\n", x);
drivers/input/mouse/hgpk.c
139
psmouse_warn(psmouse, "detected secondary %dpx jump in x\n", x);
drivers/input/mouse/hgpk.c
151
psmouse_warn(psmouse, "detected %dpx jump in y\n", y);
drivers/input/mouse/hgpk.c
154
psmouse_warn(psmouse, "detected secondary %dpx jump in y\n", y);
drivers/input/mouse/hgpk.c
168
psmouse_warn(psmouse, "scheduling recalibration\n");
drivers/input/mouse/hgpk.c
169
psmouse_queue_work(psmouse, &priv->recalib_wq,
drivers/input/mouse/hgpk.c
185
static void hgpk_reset_hack_state(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
187
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
211
static void hgpk_spewing_hack(struct psmouse *psmouse,
drivers/input/mouse/hgpk.c
214
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
260
psmouse_warn(psmouse, "packet spew detected (%d,%d)\n",
drivers/input/mouse/hgpk.c
263
psmouse_queue_work(psmouse, &priv->recalib_wq,
drivers/input/mouse/hgpk.c
306
static bool hgpk_is_byte_valid(struct psmouse *psmouse, unsigned char *packet)
drivers/input/mouse/hgpk.c
308
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
309
int pktcnt = psmouse->pktcnt;
drivers/input/mouse/hgpk.c
333
psmouse_dbg(psmouse,
drivers/input/mouse/hgpk.c
335
priv->mode, pktcnt, 6, psmouse->packet);
drivers/input/mouse/hgpk.c
340
static void hgpk_process_advanced_packet(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
342
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
343
struct input_dev *idev = psmouse->dev;
drivers/input/mouse/hgpk.c
344
unsigned char *packet = psmouse->packet;
drivers/input/mouse/hgpk.c
358
psmouse_dbg(psmouse, "pd=%d fd=%d z=%d",
drivers/input/mouse/hgpk.c
366
psmouse_dbg(psmouse, "pd=%d ", down);
drivers/input/mouse/hgpk.c
370
psmouse_dbg(psmouse, "l=%d r=%d x=%d y=%d\n",
drivers/input/mouse/hgpk.c
382
hgpk_reset_hack_state(psmouse);
drivers/input/mouse/hgpk.c
393
psmouse_dbg(psmouse, "hard spew detected\n");
drivers/input/mouse/hgpk.c
395
psmouse_queue_work(psmouse, &priv->recalib_wq,
drivers/input/mouse/hgpk.c
408
if (hgpk_discard_decay_hack(psmouse, x_diff, y_diff)) {
drivers/input/mouse/hgpk.c
410
psmouse_dbg(psmouse, "discarding\n");
drivers/input/mouse/hgpk.c
413
hgpk_spewing_hack(psmouse, left, right, x_diff, y_diff);
drivers/input/mouse/hgpk.c
425
static void hgpk_process_simple_packet(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
427
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/hgpk.c
428
unsigned char *packet = psmouse->packet;
drivers/input/mouse/hgpk.c
435
psmouse_dbg(psmouse,
drivers/input/mouse/hgpk.c
439
if (hgpk_discard_decay_hack(psmouse, x, y)) {
drivers/input/mouse/hgpk.c
441
psmouse_dbg(psmouse, "discarding\n");
drivers/input/mouse/hgpk.c
445
hgpk_spewing_hack(psmouse, left, right, x, y);
drivers/input/mouse/hgpk.c
448
psmouse_dbg(psmouse, "l=%d r=%d x=%d y=%d\n",
drivers/input/mouse/hgpk.c
460
static psmouse_ret_t hgpk_process_byte(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
462
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
464
if (!hgpk_is_byte_valid(psmouse, psmouse->packet))
drivers/input/mouse/hgpk.c
467
if (psmouse->pktcnt >= psmouse->pktsize) {
drivers/input/mouse/hgpk.c
469
hgpk_process_simple_packet(psmouse);
drivers/input/mouse/hgpk.c
471
hgpk_process_advanced_packet(psmouse);
drivers/input/mouse/hgpk.c
481
psmouse_dbg(psmouse,
drivers/input/mouse/hgpk.c
483
psmouse_queue_work(psmouse, &priv->recalib_wq,
drivers/input/mouse/hgpk.c
492
static int hgpk_select_mode(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
494
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/hgpk.c
495
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
511
psmouse->pktsize = 3;
drivers/input/mouse/hgpk.c
516
psmouse->pktsize = 6;
drivers/input/mouse/hgpk.c
603
static int hgpk_reset_device(struct psmouse *psmouse, bool recalibrate)
drivers/input/mouse/hgpk.c
607
psmouse_reset(psmouse);
drivers/input/mouse/hgpk.c
610
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/hgpk.c
624
err = hgpk_select_mode(psmouse);
drivers/input/mouse/hgpk.c
626
psmouse_err(psmouse, "failed to select mode\n");
drivers/input/mouse/hgpk.c
630
hgpk_reset_hack_state(psmouse);
drivers/input/mouse/hgpk.c
635
static int hgpk_force_recalibrate(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
637
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
641
if (psmouse->model < HGPK_MODEL_C)
drivers/input/mouse/hgpk.c
645
psmouse_dbg(psmouse, "recalibration disabled, ignoring\n");
drivers/input/mouse/hgpk.c
649
psmouse_dbg(psmouse, "recalibrating touchpad..\n");
drivers/input/mouse/hgpk.c
652
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/hgpk.c
655
err = hgpk_reset_device(psmouse, true);
drivers/input/mouse/hgpk.c
665
if (psmouse_activate(psmouse))
drivers/input/mouse/hgpk.c
669
psmouse_dbg(psmouse, "touchpad reactivated\n");
drivers/input/mouse/hgpk.c
692
static int hgpk_toggle_powersave(struct psmouse *psmouse, int enable)
drivers/input/mouse/hgpk.c
694
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/hgpk.c
699
if (psmouse->model < HGPK_MODEL_D)
drivers/input/mouse/hgpk.c
703
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/hgpk.c
718
err = hgpk_reset_device(psmouse, false);
drivers/input/mouse/hgpk.c
720
psmouse_err(psmouse, "Failed to reset device!\n");
drivers/input/mouse/hgpk.c
725
psmouse_activate(psmouse);
drivers/input/mouse/hgpk.c
726
psmouse_dbg(psmouse, "Touchpad powered up.\n");
drivers/input/mouse/hgpk.c
728
psmouse_dbg(psmouse, "Powering off touchpad.\n");
drivers/input/mouse/hgpk.c
736
psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/hgpk.c
745
static int hgpk_poll(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
751
static int hgpk_reconnect(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
753
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
761
if (psmouse->ps2dev.serio->dev.power.power_state.event !=
drivers/input/mouse/hgpk.c
766
return hgpk_reset_device(psmouse, false);
drivers/input/mouse/hgpk.c
769
static ssize_t hgpk_show_powered(struct psmouse *psmouse, void *data, char *buf)
drivers/input/mouse/hgpk.c
771
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
776
static ssize_t hgpk_set_powered(struct psmouse *psmouse, void *data,
drivers/input/mouse/hgpk.c
779
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
795
err = hgpk_toggle_powersave(psmouse, value);
drivers/input/mouse/hgpk.c
806
static ssize_t attr_show_mode(struct psmouse *psmouse, void *data, char *buf)
drivers/input/mouse/hgpk.c
808
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
813
static ssize_t attr_set_mode(struct psmouse *psmouse, void *data,
drivers/input/mouse/hgpk.c
816
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
819
struct input_dev *old_dev = psmouse->dev;
drivers/input/mouse/hgpk.c
833
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/hgpk.c
837
err = hgpk_reset_device(psmouse, false);
drivers/input/mouse/hgpk.c
843
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/hgpk.c
849
psmouse->dev = new_dev;
drivers/input/mouse/hgpk.c
857
hgpk_reset_device(psmouse, false);
drivers/input/mouse/hgpk.c
865
static ssize_t hgpk_trigger_recal_show(struct psmouse *psmouse,
drivers/input/mouse/hgpk.c
871
static ssize_t hgpk_trigger_recal(struct psmouse *psmouse, void *data,
drivers/input/mouse/hgpk.c
874
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
890
psmouse_queue_work(psmouse, &priv->recalib_wq, 0);
drivers/input/mouse/hgpk.c
897
static void hgpk_disconnect(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
899
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
901
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
903
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
906
if (psmouse->model >= HGPK_MODEL_C)
drivers/input/mouse/hgpk.c
907
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
910
psmouse_reset(psmouse);
drivers/input/mouse/hgpk.c
918
struct psmouse *psmouse = priv->psmouse;
drivers/input/mouse/hgpk.c
920
if (hgpk_force_recalibrate(psmouse))
drivers/input/mouse/hgpk.c
921
psmouse_err(psmouse, "recalibration failed!\n");
drivers/input/mouse/hgpk.c
924
static int hgpk_register(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
926
struct hgpk_data *priv = psmouse->private;
drivers/input/mouse/hgpk.c
930
psmouse->protocol_handler = hgpk_process_byte;
drivers/input/mouse/hgpk.c
931
psmouse->poll = hgpk_poll;
drivers/input/mouse/hgpk.c
932
psmouse->disconnect = hgpk_disconnect;
drivers/input/mouse/hgpk.c
933
psmouse->reconnect = hgpk_reconnect;
drivers/input/mouse/hgpk.c
936
psmouse->resync_time = 0;
drivers/input/mouse/hgpk.c
938
psmouse->resetafter = 1024;
drivers/input/mouse/hgpk.c
940
hgpk_setup_input_device(psmouse->dev, NULL, priv->mode);
drivers/input/mouse/hgpk.c
942
err = device_create_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
945
psmouse_err(psmouse, "Failed creating 'powered' sysfs node\n");
drivers/input/mouse/hgpk.c
949
err = device_create_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
952
psmouse_err(psmouse,
drivers/input/mouse/hgpk.c
958
if (psmouse->model >= HGPK_MODEL_C) {
drivers/input/mouse/hgpk.c
959
err = device_create_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
962
psmouse_err(psmouse,
drivers/input/mouse/hgpk.c
971
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
974
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/hgpk.c
979
int hgpk_init(struct psmouse *psmouse)
drivers/input/mouse/hgpk.c
990
psmouse->private = priv;
drivers/input/mouse/hgpk.c
992
priv->psmouse = psmouse;
drivers/input/mouse/hgpk.c
997
err = hgpk_reset_device(psmouse, false);
drivers/input/mouse/hgpk.h
37
struct psmouse *psmouse;
drivers/input/mouse/hgpk.h
50
int hgpk_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/hgpk.h
51
int hgpk_init(struct psmouse *psmouse);
drivers/input/mouse/lifebook.c
132
static psmouse_ret_t lifebook_process_byte(struct psmouse *psmouse)
drivers/input/mouse/lifebook.c
134
struct lifebook_data *priv = psmouse->private;
drivers/input/mouse/lifebook.c
135
struct input_dev *dev1 = psmouse->dev;
drivers/input/mouse/lifebook.c
137
u8 *packet = psmouse->packet;
drivers/input/mouse/lifebook.c
141
if (psmouse->pktcnt != 3)
drivers/input/mouse/lifebook.c
144
switch (psmouse->pktcnt) {
drivers/input/mouse/lifebook.c
170
psmouse_warn(psmouse,
drivers/input/mouse/lifebook.c
199
static int lifebook_absolute_mode(struct psmouse *psmouse)
drivers/input/mouse/lifebook.c
201
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/lifebook.c
205
error = psmouse_reset(psmouse);
drivers/input/mouse/lifebook.c
220
static void lifebook_relative_mode(struct psmouse *psmouse)
drivers/input/mouse/lifebook.c
222
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/lifebook.c
228
static void lifebook_set_resolution(struct psmouse *psmouse, unsigned int resolution)
drivers/input/mouse/lifebook.c
237
ps2_command(&psmouse->ps2dev, &p, PSMOUSE_CMD_SETRES);
drivers/input/mouse/lifebook.c
238
psmouse->resolution = 50 << p;
drivers/input/mouse/lifebook.c
241
static void lifebook_disconnect(struct psmouse *psmouse)
drivers/input/mouse/lifebook.c
243
struct lifebook_data *priv = psmouse->private;
drivers/input/mouse/lifebook.c
245
psmouse_reset(psmouse);
drivers/input/mouse/lifebook.c
250
psmouse->private = NULL;
drivers/input/mouse/lifebook.c
253
int lifebook_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/lifebook.c
259
strcmp(psmouse->ps2dev.serio->phys, desired_serio_phys))
drivers/input/mouse/lifebook.c
263
psmouse->vendor = "Fujitsu";
drivers/input/mouse/lifebook.c
264
psmouse->name = "Lifebook TouchScreen";
drivers/input/mouse/lifebook.c
270
static int lifebook_create_relative_device(struct psmouse *psmouse)
drivers/input/mouse/lifebook.c
283
"%s/input1", psmouse->ps2dev.serio->phys);
drivers/input/mouse/lifebook.c
291
dev2->dev.parent = &psmouse->ps2dev.serio->dev;
drivers/input/mouse/lifebook.c
302
psmouse->private = priv;
drivers/input/mouse/lifebook.c
311
int lifebook_init(struct psmouse *psmouse)
drivers/input/mouse/lifebook.c
313
struct input_dev *dev1 = psmouse->dev;
drivers/input/mouse/lifebook.c
317
error = lifebook_absolute_mode(psmouse);
drivers/input/mouse/lifebook.c
331
error = lifebook_create_relative_device(psmouse);
drivers/input/mouse/lifebook.c
333
lifebook_relative_mode(psmouse);
drivers/input/mouse/lifebook.c
338
psmouse->protocol_handler = lifebook_process_byte;
drivers/input/mouse/lifebook.c
339
psmouse->set_resolution = lifebook_set_resolution;
drivers/input/mouse/lifebook.c
340
psmouse->disconnect = lifebook_disconnect;
drivers/input/mouse/lifebook.c
341
psmouse->reconnect = lifebook_absolute_mode;
drivers/input/mouse/lifebook.c
343
psmouse->model = lifebook_use_6byte_proto ? 6 : 3;
drivers/input/mouse/lifebook.c
349
psmouse->pktsize = 3;
drivers/input/mouse/lifebook.h
11
int lifebook_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/lifebook.h
12
int lifebook_init(struct psmouse *psmouse);
drivers/input/mouse/logips2pp.c
113
static int ps2pp_cmd(struct psmouse *psmouse, u8 *param, u8 command)
drivers/input/mouse/logips2pp.c
117
error = ps2_sliced_command(&psmouse->ps2dev, command);
drivers/input/mouse/logips2pp.c
121
error = ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_POLL | 0x0300);
drivers/input/mouse/logips2pp.c
136
static void ps2pp_set_smartscroll(struct psmouse *psmouse, bool smartscroll)
drivers/input/mouse/logips2pp.c
138
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/logips2pp.c
141
ps2pp_cmd(psmouse, param, 0x32);
drivers/input/mouse/logips2pp.c
152
static ssize_t ps2pp_attr_show_smartscroll(struct psmouse *psmouse,
drivers/input/mouse/logips2pp.c
155
return sprintf(buf, "%d\n", psmouse->smartscroll);
drivers/input/mouse/logips2pp.c
158
static ssize_t ps2pp_attr_set_smartscroll(struct psmouse *psmouse, void *data,
drivers/input/mouse/logips2pp.c
171
ps2pp_set_smartscroll(psmouse, value);
drivers/input/mouse/logips2pp.c
172
psmouse->smartscroll = value;
drivers/input/mouse/logips2pp.c
185
static void ps2pp_set_resolution(struct psmouse *psmouse,
drivers/input/mouse/logips2pp.c
189
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/logips2pp.c
196
psmouse->resolution = 800;
drivers/input/mouse/logips2pp.c
198
psmouse_set_resolution(psmouse, resolution);
drivers/input/mouse/logips2pp.c
201
static void ps2pp_disconnect(struct psmouse *psmouse)
drivers/input/mouse/logips2pp.c
203
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/logips2pp.c
270
static void ps2pp_set_model_properties(struct psmouse *psmouse,
drivers/input/mouse/logips2pp.c
274
struct input_dev *input_dev = psmouse->dev;
drivers/input/mouse/logips2pp.c
299
psmouse->name = "Wheel Mouse";
drivers/input/mouse/logips2pp.c
303
psmouse->name = "MX Mouse";
drivers/input/mouse/logips2pp.c
307
psmouse->name = "TouchPad 3";
drivers/input/mouse/logips2pp.c
311
psmouse->name = "TrackMan";
drivers/input/mouse/logips2pp.c
321
psmouse->name = "Mouse";
drivers/input/mouse/logips2pp.c
326
static int ps2pp_setup_protocol(struct psmouse *psmouse,
drivers/input/mouse/logips2pp.c
331
psmouse->protocol_handler = ps2pp_process_byte;
drivers/input/mouse/logips2pp.c
332
psmouse->pktsize = 3;
drivers/input/mouse/logips2pp.c
335
psmouse->set_resolution = ps2pp_set_resolution;
drivers/input/mouse/logips2pp.c
336
psmouse->disconnect = ps2pp_disconnect;
drivers/input/mouse/logips2pp.c
338
error = device_create_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/logips2pp.c
341
psmouse_err(psmouse,
drivers/input/mouse/logips2pp.c
357
int ps2pp_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/logips2pp.c
359
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/logips2pp.c
408
ps2pp_cmd(psmouse, param, 0x39); /* Magic knock */
drivers/input/mouse/logips2pp.c
409
ps2pp_cmd(psmouse, param, 0xDB);
drivers/input/mouse/logips2pp.c
41
static psmouse_ret_t ps2pp_process_byte(struct psmouse *psmouse)
drivers/input/mouse/logips2pp.c
414
ps2pp_set_smartscroll(psmouse, false);
drivers/input/mouse/logips2pp.c
420
psmouse_warn(psmouse,
drivers/input/mouse/logips2pp.c
426
psmouse->vendor = "Logitech";
drivers/input/mouse/logips2pp.c
427
psmouse->model = model;
drivers/input/mouse/logips2pp.c
43
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/logips2pp.c
430
error = ps2pp_setup_protocol(psmouse, model_info);
drivers/input/mouse/logips2pp.c
436
input_set_capability(psmouse->dev, EV_KEY, BTN_MIDDLE);
drivers/input/mouse/logips2pp.c
439
ps2pp_set_model_properties(psmouse, model_info, use_ps2pp);
drivers/input/mouse/logips2pp.c
44
u8 *packet = psmouse->packet;
drivers/input/mouse/logips2pp.c
46
if (psmouse->pktcnt < 3)
drivers/input/mouse/logips2pp.c
87
psmouse_dbg(psmouse,
drivers/input/mouse/logips2pp.h
11
int ps2pp_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/psmouse-base.c
1004
psmouse_apply_defaults(psmouse);
drivers/input/mouse/psmouse-base.c
1006
return detect(psmouse, set_properties) == 0;
drivers/input/mouse/psmouse-base.c
1009
static bool psmouse_try_protocol(struct psmouse *psmouse,
drivers/input/mouse/psmouse-base.c
1020
if (!psmouse_do_detect(proto->detect, psmouse, proto->try_passthru,
drivers/input/mouse/psmouse-base.c
1025
if (proto->init(psmouse) != 0) {
drivers/input/mouse/psmouse-base.c
1044
static int psmouse_extensions(struct psmouse *psmouse,
drivers/input/mouse/psmouse-base.c
1055
psmouse, false, set_properties)) {
drivers/input/mouse/psmouse-base.c
1058
(!set_properties || focaltech_init(psmouse) == 0)) {
drivers/input/mouse/psmouse-base.c
1076
if (psmouse_try_protocol(psmouse, PSMOUSE_LIFEBOOK, &max_proto,
drivers/input/mouse/psmouse-base.c
1080
if (psmouse_try_protocol(psmouse, PSMOUSE_VMMOUSE, &max_proto,
drivers/input/mouse/psmouse-base.c
1089
psmouse_try_protocol(psmouse, PSMOUSE_THINKPS, &max_proto,
drivers/input/mouse/psmouse-base.c
1102
psmouse, false, set_properties)) {
drivers/input/mouse/psmouse-base.c
1116
ret = synaptics_init(psmouse);
drivers/input/mouse/psmouse-base.c
1134
synaptics_reset(psmouse);
drivers/input/mouse/psmouse-base.c
1143
psmouse_try_protocol(psmouse, PSMOUSE_CYPRESS, &max_proto,
drivers/input/mouse/psmouse-base.c
1150
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
drivers/input/mouse/psmouse-base.c
1151
if (psmouse_try_protocol(psmouse, PSMOUSE_ALPS,
drivers/input/mouse/psmouse-base.c
1158
psmouse_try_protocol(psmouse, PSMOUSE_HGPK, &max_proto,
drivers/input/mouse/psmouse-base.c
1165
psmouse_try_protocol(psmouse, PSMOUSE_ELANTECH,
drivers/input/mouse/psmouse-base.c
1170
ret = elantech_init(psmouse);
drivers/input/mouse/psmouse-base.c
1176
if (psmouse_try_protocol(psmouse, PSMOUSE_GENPS,
drivers/input/mouse/psmouse-base.c
1180
if (psmouse_try_protocol(psmouse, PSMOUSE_PS2PP,
drivers/input/mouse/psmouse-base.c
1184
if (psmouse_try_protocol(psmouse, PSMOUSE_TRACKPOINT,
drivers/input/mouse/psmouse-base.c
1188
if (psmouse_try_protocol(psmouse, PSMOUSE_TOUCHKIT_PS2,
drivers/input/mouse/psmouse-base.c
119
struct psmouse *psmouse_from_serio(struct serio *serio)
drivers/input/mouse/psmouse-base.c
1198
psmouse_try_protocol(psmouse, PSMOUSE_FSP,
drivers/input/mouse/psmouse-base.c
1208
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
drivers/input/mouse/psmouse-base.c
1209
psmouse_reset(psmouse);
drivers/input/mouse/psmouse-base.c
1212
psmouse_try_protocol(psmouse, PSMOUSE_IMEX,
drivers/input/mouse/psmouse-base.c
1218
psmouse_try_protocol(psmouse, PSMOUSE_IMPS,
drivers/input/mouse/psmouse-base.c
1227
psmouse_try_protocol(psmouse, PSMOUSE_PS2,
drivers/input/mouse/psmouse-base.c
123
return container_of(ps2dev, struct psmouse, ps2dev);
drivers/input/mouse/psmouse-base.c
1237
psmouse_reset(psmouse);
drivers/input/mouse/psmouse-base.c
1246
static int psmouse_probe(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
1248
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/psmouse-base.c
1273
psmouse_warn(psmouse, "Failed to reset mouse on %s: %d\n",
drivers/input/mouse/psmouse-base.c
1282
static void psmouse_initialize(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
1288
psmouse->set_rate(psmouse, psmouse->rate);
drivers/input/mouse/psmouse-base.c
1289
psmouse->set_resolution(psmouse, psmouse->resolution);
drivers/input/mouse/psmouse-base.c
1290
psmouse->set_scale(psmouse, PSMOUSE_SCALE11);
drivers/input/mouse/psmouse-base.c
1297
int psmouse_activate(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
1299
if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE)) {
drivers/input/mouse/psmouse-base.c
1300
psmouse_warn(psmouse, "Failed to enable mouse on %s\n",
drivers/input/mouse/psmouse-base.c
1301
psmouse->ps2dev.serio->phys);
drivers/input/mouse/psmouse-base.c
1305
psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
drivers/input/mouse/psmouse-base.c
1313
int psmouse_deactivate(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
1317
error = ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE);
drivers/input/mouse/psmouse-base.c
1319
psmouse_warn(psmouse, "Failed to deactivate mouse on %s: %d\n",
drivers/input/mouse/psmouse-base.c
1320
psmouse->ps2dev.serio->phys, error);
drivers/input/mouse/psmouse-base.c
1324
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1333
struct psmouse *parent = NULL, *psmouse =
drivers/input/mouse/psmouse-base.c
1334
container_of(work, struct psmouse, resync_work.work);
drivers/input/mouse/psmouse-base.c
1335
struct serio *serio = psmouse->ps2dev.serio;
drivers/input/mouse/psmouse-base.c
1342
if (psmouse->state != PSMOUSE_RESYNCING)
drivers/input/mouse/psmouse-base.c
1360
psmouse->num_resyncs++;
drivers/input/mouse/psmouse-base.c
1362
if (ps2_sendbyte(&psmouse->ps2dev, PSMOUSE_CMD_DISABLE, 20)) {
drivers/input/mouse/psmouse-base.c
1363
if (psmouse->num_resyncs < 3 || psmouse->acks_disable_command)
drivers/input/mouse/psmouse-base.c
1366
psmouse->acks_disable_command = true;
drivers/input/mouse/psmouse-base.c
1376
if (psmouse->poll(psmouse))
drivers/input/mouse/psmouse-base.c
1379
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1380
for (i = 0; i < psmouse->pktsize; i++) {
drivers/input/mouse/psmouse-base.c
1381
psmouse->pktcnt++;
drivers/input/mouse/psmouse-base.c
1382
rc = psmouse->protocol_handler(psmouse);
drivers/input/mouse/psmouse-base.c
1388
psmouse_set_state(psmouse, PSMOUSE_RESYNCING);
drivers/input/mouse/psmouse-base.c
1398
if (!ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE)) {
drivers/input/mouse/psmouse-base.c
1406
psmouse_warn(psmouse, "failed to re-enable mouse on %s\n",
drivers/input/mouse/psmouse-base.c
1407
psmouse->ps2dev.serio->phys);
drivers/input/mouse/psmouse-base.c
1412
psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
1413
psmouse_info(psmouse,
drivers/input/mouse/psmouse-base.c
1417
psmouse_set_state(psmouse, PSMOUSE_ACTIVATED);
drivers/input/mouse/psmouse-base.c
1430
struct psmouse *psmouse = psmouse_from_serio(serio);
drivers/input/mouse/psmouse-base.c
1431
struct psmouse *parent = NULL;
drivers/input/mouse/psmouse-base.c
1440
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/psmouse-base.c
1445
if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE))
drivers/input/mouse/psmouse-base.c
1446
psmouse_warn(psmouse, "Failed to disable mouse on %s\n",
drivers/input/mouse/psmouse-base.c
1447
psmouse->ps2dev.serio->phys);
drivers/input/mouse/psmouse-base.c
1449
if (psmouse->cleanup)
drivers/input/mouse/psmouse-base.c
1450
psmouse->cleanup(psmouse);
drivers/input/mouse/psmouse-base.c
1455
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS);
drivers/input/mouse/psmouse-base.c
1461
ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_ENABLE);
drivers/input/mouse/psmouse-base.c
1478
struct psmouse *psmouse = psmouse_from_serio(serio);
drivers/input/mouse/psmouse-base.c
1479
struct psmouse *parent = NULL;
drivers/input/mouse/psmouse-base.c
1483
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1495
if (psmouse->disconnect)
drivers/input/mouse/psmouse-base.c
1496
psmouse->disconnect(psmouse);
drivers/input/mouse/psmouse-base.c
1501
psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
1506
if (psmouse->dev)
drivers/input/mouse/psmouse-base.c
1507
input_unregister_device(psmouse->dev);
drivers/input/mouse/psmouse-base.c
1509
kfree(psmouse);
drivers/input/mouse/psmouse-base.c
1517
static int psmouse_switch_protocol(struct psmouse *psmouse,
drivers/input/mouse/psmouse-base.c
1521
struct input_dev *input_dev = psmouse->dev;
drivers/input/mouse/psmouse-base.c
1524
input_dev->dev.parent = &psmouse->ps2dev.serio->dev;
drivers/input/mouse/psmouse-base.c
1527
psmouse_apply_defaults(psmouse);
drivers/input/mouse/psmouse-base.c
1529
if (proto->detect && proto->detect(psmouse, true) < 0)
drivers/input/mouse/psmouse-base.c
1532
if (proto->init && proto->init(psmouse) < 0)
drivers/input/mouse/psmouse-base.c
1537
type = psmouse_extensions(psmouse, psmouse_max_proto, true);
drivers/input/mouse/psmouse-base.c
154
psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
1541
psmouse->protocol = selected_proto;
drivers/input/mouse/psmouse-base.c
1548
if (psmouse->pktsize == 3)
drivers/input/mouse/psmouse-base.c
1549
psmouse->resync_time = 0;
drivers/input/mouse/psmouse-base.c
1557
if (psmouse->resync_time && psmouse->poll(psmouse))
drivers/input/mouse/psmouse-base.c
1558
psmouse->resync_time = 0;
drivers/input/mouse/psmouse-base.c
156
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/psmouse-base.c
1560
snprintf(psmouse->devname, sizeof(psmouse->devname), "%s %s %s",
drivers/input/mouse/psmouse-base.c
1561
selected_proto->name, psmouse->vendor, psmouse->name);
drivers/input/mouse/psmouse-base.c
1563
input_dev->name = psmouse->devname;
drivers/input/mouse/psmouse-base.c
1564
input_dev->phys = psmouse->phys;
drivers/input/mouse/psmouse-base.c
1567
input_dev->id.product = psmouse->protocol->type;
drivers/input/mouse/psmouse-base.c
1568
input_dev->id.version = psmouse->model;
drivers/input/mouse/psmouse-base.c
157
u8 *packet = psmouse->packet;
drivers/input/mouse/psmouse-base.c
1579
struct psmouse *psmouse, *parent = NULL;
drivers/input/mouse/psmouse-base.c
1594
psmouse = kzalloc_obj(*psmouse);
drivers/input/mouse/psmouse-base.c
1596
if (!psmouse || !input_dev)
drivers/input/mouse/psmouse-base.c
1599
ps2_init(&psmouse->ps2dev, serio,
drivers/input/mouse/psmouse-base.c
160
if (psmouse->pktcnt < psmouse->pktsize)
drivers/input/mouse/psmouse-base.c
1601
INIT_DELAYED_WORK(&psmouse->resync_work, psmouse_resync);
drivers/input/mouse/psmouse-base.c
1602
psmouse->dev = input_dev;
drivers/input/mouse/psmouse-base.c
1603
scnprintf(psmouse->phys, sizeof(psmouse->phys), "%s/input0", serio->phys);
drivers/input/mouse/psmouse-base.c
1605
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/psmouse-base.c
1615
if (psmouse_probe(psmouse) < 0) {
drivers/input/mouse/psmouse-base.c
1620
psmouse->rate = psmouse_rate;
drivers/input/mouse/psmouse-base.c
1621
psmouse->resolution = psmouse_resolution;
drivers/input/mouse/psmouse-base.c
1622
psmouse->resetafter = psmouse_resetafter;
drivers/input/mouse/psmouse-base.c
1623
psmouse->resync_time = parent ? 0 : psmouse_resync_time;
drivers/input/mouse/psmouse-base.c
1624
psmouse->smartscroll = psmouse_smartscroll;
drivers/input/mouse/psmouse-base.c
1626
psmouse_switch_protocol(psmouse, NULL);
drivers/input/mouse/psmouse-base.c
1628
if (!psmouse->protocol->smbus_companion) {
drivers/input/mouse/psmouse-base.c
1629
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1630
psmouse_initialize(psmouse);
drivers/input/mouse/psmouse-base.c
1638
psmouse->dev = input_dev = NULL;
drivers/input/mouse/psmouse-base.c
1648
if (!psmouse->protocol->smbus_companion)
drivers/input/mouse/psmouse-base.c
1649
psmouse_activate(psmouse);
drivers/input/mouse/psmouse-base.c
165
switch (psmouse->protocol->type) {
drivers/input/mouse/psmouse-base.c
1660
if (psmouse->disconnect)
drivers/input/mouse/psmouse-base.c
1661
psmouse->disconnect(psmouse);
drivers/input/mouse/psmouse-base.c
1662
psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
1669
kfree(psmouse);
drivers/input/mouse/psmouse-base.c
1677
struct psmouse *psmouse = psmouse_from_serio(serio);
drivers/input/mouse/psmouse-base.c
1678
struct psmouse *parent = NULL;
drivers/input/mouse/psmouse-base.c
1679
int (*reconnect_handler)(struct psmouse *);
drivers/input/mouse/psmouse-base.c
1686
reconnect_handler = psmouse->fast_reconnect;
drivers/input/mouse/psmouse-base.c
1692
reconnect_handler = psmouse->reconnect;
drivers/input/mouse/psmouse-base.c
1700
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/psmouse-base.c
1703
if (reconnect_handler(psmouse))
drivers/input/mouse/psmouse-base.c
1706
psmouse_reset(psmouse);
drivers/input/mouse/psmouse-base.c
1708
if (psmouse_probe(psmouse) < 0)
drivers/input/mouse/psmouse-base.c
1711
type = psmouse_extensions(psmouse, psmouse_max_proto, false);
drivers/input/mouse/psmouse-base.c
1712
if (psmouse->protocol->type != type)
drivers/input/mouse/psmouse-base.c
1720
if (!psmouse->protocol->smbus_companion) {
drivers/input/mouse/psmouse-base.c
1721
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1722
psmouse_initialize(psmouse);
drivers/input/mouse/psmouse-base.c
1732
if (!psmouse->protocol->smbus_companion)
drivers/input/mouse/psmouse-base.c
1733
psmouse_activate(psmouse);
drivers/input/mouse/psmouse-base.c
1795
struct psmouse *psmouse = psmouse_from_serio(serio);
drivers/input/mouse/psmouse-base.c
1797
if (psmouse->protocol->smbus_companion &&
drivers/input/mouse/psmouse-base.c
1801
return attr->show(psmouse, attr->data, buf);
drivers/input/mouse/psmouse-base.c
1809
struct psmouse *psmouse, *parent = NULL;
drivers/input/mouse/psmouse-base.c
1816
psmouse = psmouse_from_serio(serio);
drivers/input/mouse/psmouse-base.c
1818
if (psmouse->protocol->smbus_companion &&
drivers/input/mouse/psmouse-base.c
1825
if (psmouse->state == PSMOUSE_IGNORE) {
drivers/input/mouse/psmouse-base.c
1835
if (!psmouse->protocol->smbus_companion)
drivers/input/mouse/psmouse-base.c
1836
psmouse_deactivate(psmouse);
drivers/input/mouse/psmouse-base.c
1839
retval = attr->set(psmouse, attr->data, buf, count);
drivers/input/mouse/psmouse-base.c
1842
if (retval != -ENODEV && !psmouse->protocol->smbus_companion)
drivers/input/mouse/psmouse-base.c
1843
psmouse_activate(psmouse);
drivers/input/mouse/psmouse-base.c
1855
static ssize_t psmouse_show_int_attr(struct psmouse *psmouse, void *offset, char *buf)
drivers/input/mouse/psmouse-base.c
1857
unsigned int *field = (unsigned int *)((char *)psmouse + (size_t)offset);
drivers/input/mouse/psmouse-base.c
1862
static ssize_t psmouse_set_int_attr(struct psmouse *psmouse, void *offset, const char *buf, size_t count)
drivers/input/mouse/psmouse-base.c
1864
unsigned int *field = (unsigned int *)((char *)psmouse + (size_t)offset);
drivers/input/mouse/psmouse-base.c
1877
static ssize_t psmouse_attr_show_protocol(struct psmouse *psmouse, void *data, char *buf)
drivers/input/mouse/psmouse-base.c
1879
return sprintf(buf, "%s\n", psmouse->protocol->name);
drivers/input/mouse/psmouse-base.c
1882
static ssize_t psmouse_attr_set_protocol(struct psmouse *psmouse, void *data, const char *buf, size_t count)
drivers/input/mouse/psmouse-base.c
1884
struct serio *serio = psmouse->ps2dev.serio;
drivers/input/mouse/psmouse-base.c
1885
struct psmouse *parent = NULL;
drivers/input/mouse/psmouse-base.c
1895
if (psmouse->protocol == proto)
drivers/input/mouse/psmouse-base.c
1904
psmouse_warn(psmouse,
drivers/input/mouse/psmouse-base.c
1919
if (psmouse->protocol == proto) {
drivers/input/mouse/psmouse-base.c
1931
old_dev = psmouse->dev;
drivers/input/mouse/psmouse-base.c
1932
old_proto = psmouse->protocol;
drivers/input/mouse/psmouse-base.c
1934
if (psmouse->disconnect)
drivers/input/mouse/psmouse-base.c
1935
psmouse->disconnect(psmouse);
drivers/input/mouse/psmouse-base.c
1937
psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
1939
psmouse->dev = new_dev;
drivers/input/mouse/psmouse-base.c
1940
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/psmouse-base.c
1942
if (psmouse_switch_protocol(psmouse, proto) < 0) {
drivers/input/mouse/psmouse-base.c
1943
psmouse_reset(psmouse);
drivers/input/mouse/psmouse-base.c
1945
psmouse_switch_protocol(psmouse, &psmouse_protocols[0]);
drivers/input/mouse/psmouse-base.c
1948
psmouse_initialize(psmouse);
drivers/input/mouse/psmouse-base.c
1949
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1951
if (psmouse->protocol->smbus_companion) {
drivers/input/mouse/psmouse-base.c
1952
input_free_device(psmouse->dev);
drivers/input/mouse/psmouse-base.c
1953
psmouse->dev = NULL;
drivers/input/mouse/psmouse-base.c
1955
error = input_register_device(psmouse->dev);
drivers/input/mouse/psmouse-base.c
1957
if (psmouse->disconnect)
drivers/input/mouse/psmouse-base.c
1958
psmouse->disconnect(psmouse);
drivers/input/mouse/psmouse-base.c
1960
psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
1962
psmouse->dev = old_dev;
drivers/input/mouse/psmouse-base.c
1963
psmouse_set_state(psmouse, PSMOUSE_INITIALIZING);
drivers/input/mouse/psmouse-base.c
1964
psmouse_switch_protocol(psmouse, old_proto);
drivers/input/mouse/psmouse-base.c
1965
psmouse_initialize(psmouse);
drivers/input/mouse/psmouse-base.c
1966
psmouse_set_state(psmouse, PSMOUSE_CMD_MODE);
drivers/input/mouse/psmouse-base.c
1981
static ssize_t psmouse_attr_set_rate(struct psmouse *psmouse, void *data, const char *buf, size_t count)
drivers/input/mouse/psmouse-base.c
1990
psmouse->set_rate(psmouse, value);
drivers/input/mouse/psmouse-base.c
1994
static ssize_t psmouse_attr_set_resolution(struct psmouse *psmouse, void *data, const char *buf, size_t count)
drivers/input/mouse/psmouse-base.c
2003
psmouse->set_resolution(psmouse, value);
drivers/input/mouse/psmouse-base.c
236
packet[0] |= psmouse->extra_buttons;
drivers/input/mouse/psmouse-base.c
244
void psmouse_queue_work(struct psmouse *psmouse, struct delayed_work *work,
drivers/input/mouse/psmouse-base.c
253
static inline void __psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state)
drivers/input/mouse/psmouse-base.c
255
psmouse->state = new_state;
drivers/input/mouse/psmouse-base.c
256
psmouse->pktcnt = psmouse->out_of_sync_cnt = 0;
drivers/input/mouse/psmouse-base.c
257
psmouse->ps2dev.flags = 0;
drivers/input/mouse/psmouse-base.c
258
psmouse->last = jiffies;
drivers/input/mouse/psmouse-base.c
266
void psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state)
drivers/input/mouse/psmouse-base.c
268
serio_pause_rx(psmouse->ps2dev.serio);
drivers/input/mouse/psmouse-base.c
269
__psmouse_set_state(psmouse, new_state);
drivers/input/mouse/psmouse-base.c
270
serio_continue_rx(psmouse->ps2dev.serio);
drivers/input/mouse/psmouse-base.c
277
static int psmouse_handle_byte(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
279
psmouse_ret_t rc = psmouse->protocol_handler(psmouse);
drivers/input/mouse/psmouse-base.c
283
if (psmouse->state == PSMOUSE_ACTIVATED) {
drivers/input/mouse/psmouse-base.c
284
psmouse_warn(psmouse,
drivers/input/mouse/psmouse-base.c
286
psmouse->name, psmouse->phys,
drivers/input/mouse/psmouse-base.c
287
psmouse->pktcnt);
drivers/input/mouse/psmouse-base.c
288
if (++psmouse->out_of_sync_cnt == psmouse->resetafter) {
drivers/input/mouse/psmouse-base.c
289
__psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
290
psmouse_notice(psmouse,
drivers/input/mouse/psmouse-base.c
292
serio_reconnect(psmouse->ps2dev.serio);
drivers/input/mouse/psmouse-base.c
296
psmouse->pktcnt = 0;
drivers/input/mouse/psmouse-base.c
300
psmouse->pktcnt = 0;
drivers/input/mouse/psmouse-base.c
301
if (psmouse->out_of_sync_cnt) {
drivers/input/mouse/psmouse-base.c
302
psmouse->out_of_sync_cnt = 0;
drivers/input/mouse/psmouse-base.c
303
psmouse_notice(psmouse,
drivers/input/mouse/psmouse-base.c
305
psmouse->name, psmouse->phys);
drivers/input/mouse/psmouse-base.c
315
static void psmouse_handle_oob_data(struct psmouse *psmouse, u8 data)
drivers/input/mouse/psmouse-base.c
317
switch (psmouse->oob_data_type) {
drivers/input/mouse/psmouse-base.c
319
psmouse->oob_data_type = data;
drivers/input/mouse/psmouse-base.c
323
psmouse_report_standard_buttons(psmouse->dev, data);
drivers/input/mouse/psmouse-base.c
324
input_sync(psmouse->dev);
drivers/input/mouse/psmouse-base.c
326
psmouse->extra_buttons = data;
drivers/input/mouse/psmouse-base.c
327
psmouse->oob_data_type = PSMOUSE_OOB_NONE;
drivers/input/mouse/psmouse-base.c
331
psmouse_warn(psmouse,
drivers/input/mouse/psmouse-base.c
333
psmouse->oob_data_type);
drivers/input/mouse/psmouse-base.c
334
psmouse->oob_data_type = PSMOUSE_OOB_NONE;
drivers/input/mouse/psmouse-base.c
343
struct psmouse *psmouse = container_of(ps2dev, struct psmouse, ps2dev);
drivers/input/mouse/psmouse-base.c
345
if (psmouse->state == PSMOUSE_IGNORE)
drivers/input/mouse/psmouse-base.c
350
!psmouse->protocol->ignore_parity))) {
drivers/input/mouse/psmouse-base.c
352
if (psmouse->state == PSMOUSE_ACTIVATED)
drivers/input/mouse/psmouse-base.c
353
psmouse_warn(psmouse,
drivers/input/mouse/psmouse-base.c
361
psmouse_handle_oob_data(psmouse, data);
drivers/input/mouse/psmouse-base.c
370
struct psmouse *psmouse = container_of(ps2dev, struct psmouse, ps2dev);
drivers/input/mouse/psmouse-base.c
374
if (psmouse->state <= PSMOUSE_RESYNCING)
drivers/input/mouse/psmouse-base.c
377
if (psmouse->state == PSMOUSE_ACTIVATED &&
drivers/input/mouse/psmouse-base.c
378
psmouse->pktcnt && time_after(jiffies, psmouse->last + HZ/2)) {
drivers/input/mouse/psmouse-base.c
379
psmouse_info(psmouse, "%s at %s lost synchronization, throwing %d bytes away.\n",
drivers/input/mouse/psmouse-base.c
380
psmouse->name, psmouse->phys, psmouse->pktcnt);
drivers/input/mouse/psmouse-base.c
381
psmouse->badbyte = psmouse->packet[0];
drivers/input/mouse/psmouse-base.c
382
__psmouse_set_state(psmouse, PSMOUSE_RESYNCING);
drivers/input/mouse/psmouse-base.c
383
psmouse_queue_work(psmouse, &psmouse->resync_work, 0);
drivers/input/mouse/psmouse-base.c
387
psmouse->packet[psmouse->pktcnt++] = data;
drivers/input/mouse/psmouse-base.c
390
if (unlikely(psmouse->packet[0] == PSMOUSE_RET_BAT && psmouse->pktcnt <= 2)) {
drivers/input/mouse/psmouse-base.c
391
if (psmouse->pktcnt == 1) {
drivers/input/mouse/psmouse-base.c
392
psmouse->last = jiffies;
drivers/input/mouse/psmouse-base.c
396
if (psmouse->packet[1] == PSMOUSE_RET_ID ||
drivers/input/mouse/psmouse-base.c
397
(psmouse->protocol->type == PSMOUSE_HGPK &&
drivers/input/mouse/psmouse-base.c
398
psmouse->packet[1] == PSMOUSE_RET_BAT)) {
drivers/input/mouse/psmouse-base.c
399
__psmouse_set_state(psmouse, PSMOUSE_IGNORE);
drivers/input/mouse/psmouse-base.c
405
psmouse->pktcnt = 1;
drivers/input/mouse/psmouse-base.c
406
if (psmouse_handle_byte(psmouse))
drivers/input/mouse/psmouse-base.c
409
psmouse->packet[psmouse->pktcnt++] = data;
drivers/input/mouse/psmouse-base.c
416
if (psmouse->state == PSMOUSE_ACTIVATED &&
drivers/input/mouse/psmouse-base.c
417
psmouse->pktcnt == 1 && psmouse->resync_time &&
drivers/input/mouse/psmouse-base.c
418
time_after(jiffies, psmouse->last + psmouse->resync_time * HZ)) {
drivers/input/mouse/psmouse-base.c
419
psmouse->badbyte = psmouse->packet[0];
drivers/input/mouse/psmouse-base.c
420
__psmouse_set_state(psmouse, PSMOUSE_RESYNCING);
drivers/input/mouse/psmouse-base.c
421
psmouse_queue_work(psmouse, &psmouse->resync_work, 0);
drivers/input/mouse/psmouse-base.c
425
psmouse->last = jiffies;
drivers/input/mouse/psmouse-base.c
426
psmouse_handle_byte(psmouse);
drivers/input/mouse/psmouse-base.c
432
int psmouse_reset(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
437
error = ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_RESET_BAT);
drivers/input/mouse/psmouse-base.c
450
void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution)
drivers/input/mouse/psmouse-base.c
459
ps2_command(&psmouse->ps2dev, &p, PSMOUSE_CMD_SETRES);
drivers/input/mouse/psmouse-base.c
460
psmouse->resolution = 25 << p;
drivers/input/mouse/psmouse-base.c
466
static void psmouse_set_rate(struct psmouse *psmouse, unsigned int rate)
drivers/input/mouse/psmouse-base.c
475
ps2_command(&psmouse->ps2dev, &r, PSMOUSE_CMD_SETRATE);
drivers/input/mouse/psmouse-base.c
476
psmouse->rate = r;
drivers/input/mouse/psmouse-base.c
482
static void psmouse_set_scale(struct psmouse *psmouse, enum psmouse_scale scale)
drivers/input/mouse/psmouse-base.c
484
ps2_command(&psmouse->ps2dev, NULL,
drivers/input/mouse/psmouse-base.c
492
static int psmouse_poll(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
494
return ps2_command(&psmouse->ps2dev, psmouse->packet,
drivers/input/mouse/psmouse-base.c
495
PSMOUSE_CMD_POLL | (psmouse->pktsize << 8));
drivers/input/mouse/psmouse-base.c
512
bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[])
drivers/input/mouse/psmouse-base.c
514
struct serio *serio = psmouse->ps2dev.serio;
drivers/input/mouse/psmouse-base.c
542
static int genius_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/psmouse-base.c
544
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/psmouse-base.c
558
__set_bit(BTN_MIDDLE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
559
__set_bit(BTN_EXTRA, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
560
__set_bit(BTN_SIDE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
561
__set_bit(REL_WHEEL, psmouse->dev->relbit);
drivers/input/mouse/psmouse-base.c
563
psmouse->vendor = "Genius";
drivers/input/mouse/psmouse-base.c
564
psmouse->name = "Mouse";
drivers/input/mouse/psmouse-base.c
565
psmouse->pktsize = 4;
drivers/input/mouse/psmouse-base.c
574
static int intellimouse_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/psmouse-base.c
576
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/psmouse-base.c
591
__set_bit(BTN_MIDDLE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
592
__set_bit(REL_WHEEL, psmouse->dev->relbit);
drivers/input/mouse/psmouse-base.c
594
if (!psmouse->vendor)
drivers/input/mouse/psmouse-base.c
595
psmouse->vendor = "Generic";
drivers/input/mouse/psmouse-base.c
596
if (!psmouse->name)
drivers/input/mouse/psmouse-base.c
597
psmouse->name = "Wheel Mouse";
drivers/input/mouse/psmouse-base.c
598
psmouse->pktsize = 4;
drivers/input/mouse/psmouse-base.c
607
static int im_explorer_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/psmouse-base.c
609
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/psmouse-base.c
612
intellimouse_detect(psmouse, 0);
drivers/input/mouse/psmouse-base.c
634
__set_bit(BTN_MIDDLE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
635
__set_bit(REL_WHEEL, psmouse->dev->relbit);
drivers/input/mouse/psmouse-base.c
636
__set_bit(REL_HWHEEL, psmouse->dev->relbit);
drivers/input/mouse/psmouse-base.c
637
__set_bit(BTN_SIDE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
638
__set_bit(BTN_EXTRA, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
640
if (!psmouse->vendor)
drivers/input/mouse/psmouse-base.c
641
psmouse->vendor = "Generic";
drivers/input/mouse/psmouse-base.c
642
if (!psmouse->name)
drivers/input/mouse/psmouse-base.c
643
psmouse->name = "Explorer Mouse";
drivers/input/mouse/psmouse-base.c
644
psmouse->pktsize = 4;
drivers/input/mouse/psmouse-base.c
653
static int thinking_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/psmouse-base.c
655
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/psmouse-base.c
674
__set_bit(BTN_MIDDLE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
675
__set_bit(BTN_EXTRA, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
677
psmouse->vendor = "Kensington";
drivers/input/mouse/psmouse-base.c
678
psmouse->name = "ThinkingMouse";
drivers/input/mouse/psmouse-base.c
687
static int ps2bare_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/psmouse-base.c
690
if (!psmouse->vendor)
drivers/input/mouse/psmouse-base.c
691
psmouse->vendor = "Generic";
drivers/input/mouse/psmouse-base.c
692
if (!psmouse->name)
drivers/input/mouse/psmouse-base.c
693
psmouse->name = "Mouse";
drivers/input/mouse/psmouse-base.c
699
input_set_capability(psmouse->dev, EV_KEY, BTN_MIDDLE);
drivers/input/mouse/psmouse-base.c
709
static int cortron_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/psmouse-base.c
712
psmouse->vendor = "Cortron";
drivers/input/mouse/psmouse-base.c
713
psmouse->name = "PS/2 Trackball";
drivers/input/mouse/psmouse-base.c
715
__set_bit(BTN_MIDDLE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
716
__set_bit(BTN_SIDE, psmouse->dev->keybit);
drivers/input/mouse/psmouse-base.c
85
(void *) offsetof(struct psmouse, rate),
drivers/input/mouse/psmouse-base.c
88
(void *) offsetof(struct psmouse, resolution),
drivers/input/mouse/psmouse-base.c
91
(void *) offsetof(struct psmouse, resetafter),
drivers/input/mouse/psmouse-base.c
94
(void *) offsetof(struct psmouse, resync_time),
drivers/input/mouse/psmouse-base.c
960
static void psmouse_apply_defaults(struct psmouse *psmouse)
drivers/input/mouse/psmouse-base.c
962
struct input_dev *input_dev = psmouse->dev;
drivers/input/mouse/psmouse-base.c
978
psmouse->protocol = &psmouse_protocols[0];
drivers/input/mouse/psmouse-base.c
980
psmouse->set_rate = psmouse_set_rate;
drivers/input/mouse/psmouse-base.c
981
psmouse->set_resolution = psmouse_set_resolution;
drivers/input/mouse/psmouse-base.c
982
psmouse->set_scale = psmouse_set_scale;
drivers/input/mouse/psmouse-base.c
983
psmouse->poll = psmouse_poll;
drivers/input/mouse/psmouse-base.c
984
psmouse->protocol_handler = psmouse_process_byte;
drivers/input/mouse/psmouse-base.c
985
psmouse->pktsize = 3;
drivers/input/mouse/psmouse-base.c
986
psmouse->reconnect = NULL;
drivers/input/mouse/psmouse-base.c
987
psmouse->fast_reconnect = NULL;
drivers/input/mouse/psmouse-base.c
988
psmouse->disconnect = NULL;
drivers/input/mouse/psmouse-base.c
989
psmouse->cleanup = NULL;
drivers/input/mouse/psmouse-base.c
990
psmouse->pt_activate = NULL;
drivers/input/mouse/psmouse-base.c
991
psmouse->pt_deactivate = NULL;
drivers/input/mouse/psmouse-base.c
994
static bool psmouse_do_detect(int (*detect)(struct psmouse *, bool),
drivers/input/mouse/psmouse-base.c
995
struct psmouse *psmouse, bool allow_passthrough,
drivers/input/mouse/psmouse-base.c
998
if (psmouse->ps2dev.serio->id.type == SERIO_PS_PSTHRU &&
drivers/input/mouse/psmouse-smbus.c
112
static psmouse_ret_t psmouse_smbus_process_byte(struct psmouse *psmouse)
drivers/input/mouse/psmouse-smbus.c
117
static int psmouse_smbus_reconnect(struct psmouse *psmouse)
drivers/input/mouse/psmouse-smbus.c
119
struct psmouse_smbus_dev *smbdev = psmouse->private;
drivers/input/mouse/psmouse-smbus.c
122
psmouse_deactivate(psmouse);
drivers/input/mouse/psmouse-smbus.c
166
static void psmouse_smbus_disconnect(struct psmouse *psmouse)
drivers/input/mouse/psmouse-smbus.c
168
struct psmouse_smbus_dev *smbdev = psmouse->private;
drivers/input/mouse/psmouse-smbus.c
178
&psmouse->ps2dev.serio->dev);
drivers/input/mouse/psmouse-smbus.c
179
psmouse_dbg(smbdev->psmouse,
drivers/input/mouse/psmouse-smbus.c
185
psmouse->private = NULL;
drivers/input/mouse/psmouse-smbus.c
19
struct psmouse *psmouse;
drivers/input/mouse/psmouse-smbus.c
212
void psmouse_smbus_cleanup(struct psmouse *psmouse)
drivers/input/mouse/psmouse-smbus.c
219
if (psmouse == smbdev->psmouse) {
drivers/input/mouse/psmouse-smbus.c
226
int psmouse_smbus_init(struct psmouse *psmouse,
drivers/input/mouse/psmouse-smbus.c
239
smbdev->psmouse = psmouse;
drivers/input/mouse/psmouse-smbus.c
253
psmouse_deactivate(psmouse);
drivers/input/mouse/psmouse-smbus.c
255
psmouse->private = smbdev;
drivers/input/mouse/psmouse-smbus.c
256
psmouse->protocol_handler = psmouse_smbus_process_byte;
drivers/input/mouse/psmouse-smbus.c
257
psmouse->reconnect = psmouse_smbus_reconnect;
drivers/input/mouse/psmouse-smbus.c
258
psmouse->fast_reconnect = psmouse_smbus_reconnect;
drivers/input/mouse/psmouse-smbus.c
259
psmouse->disconnect = psmouse_smbus_disconnect;
drivers/input/mouse/psmouse-smbus.c
260
psmouse->resync_time = 0;
drivers/input/mouse/psmouse-smbus.c
272
&psmouse->ps2dev.serio->dev,
drivers/input/mouse/psmouse-smbus.c
274
psmouse_warn(psmouse,
drivers/input/mouse/psmouse-smbus.c
54
psmouse_dbg(smbdev->psmouse,
drivers/input/mouse/psmouse-smbus.c
56
serio_rescan(smbdev->psmouse->ps2dev.serio);
drivers/input/mouse/psmouse-smbus.c
74
psmouse_dbg(smbdev->psmouse,
drivers/input/mouse/psmouse-smbus.c
79
&smbdev->psmouse->ps2dev.serio->dev);
drivers/input/mouse/psmouse-smbus.c
80
serio_rescan(smbdev->psmouse->ps2dev.serio);
drivers/input/mouse/psmouse.h
118
psmouse_ret_t (*protocol_handler)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
119
void (*set_rate)(struct psmouse *psmouse, unsigned int rate);
drivers/input/mouse/psmouse.h
120
void (*set_resolution)(struct psmouse *psmouse, unsigned int resolution);
drivers/input/mouse/psmouse.h
121
void (*set_scale)(struct psmouse *psmouse, enum psmouse_scale scale);
drivers/input/mouse/psmouse.h
123
int (*reconnect)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
124
int (*fast_reconnect)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
125
void (*disconnect)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
126
void (*cleanup)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
127
int (*poll)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
129
void (*pt_activate)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
130
void (*pt_deactivate)(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
133
struct psmouse *psmouse_from_serio(struct serio *serio);
drivers/input/mouse/psmouse.h
135
void psmouse_queue_work(struct psmouse *psmouse, struct delayed_work *work,
drivers/input/mouse/psmouse.h
137
int psmouse_reset(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
138
void psmouse_set_state(struct psmouse *psmouse, enum psmouse_state new_state);
drivers/input/mouse/psmouse.h
139
void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution);
drivers/input/mouse/psmouse.h
140
psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
141
int psmouse_activate(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
142
int psmouse_deactivate(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
143
bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[]);
drivers/input/mouse/psmouse.h
152
ssize_t (*show)(struct psmouse *psmouse, void *data, char *buf);
drivers/input/mouse/psmouse.h
153
ssize_t (*set)(struct psmouse *psmouse, void *data,
drivers/input/mouse/psmouse.h
181
static ssize_t _show(struct psmouse *, void *, char *); \
drivers/input/mouse/psmouse.h
182
static ssize_t _set(struct psmouse *, void *, const char *, size_t); \
drivers/input/mouse/psmouse.h
189
static ssize_t _show(struct psmouse *, void *, char *); \
drivers/input/mouse/psmouse.h
193
static ssize_t _set(struct psmouse *, void *, const char *, size_t); \
drivers/input/mouse/psmouse.h
200
#define psmouse_dbg(psmouse, format, ...) \
drivers/input/mouse/psmouse.h
201
dev_dbg(&(psmouse)->ps2dev.serio->dev, \
drivers/input/mouse/psmouse.h
203
#define psmouse_info(psmouse, format, ...) \
drivers/input/mouse/psmouse.h
204
dev_info(&(psmouse)->ps2dev.serio->dev, \
drivers/input/mouse/psmouse.h
206
#define psmouse_warn(psmouse, format, ...) \
drivers/input/mouse/psmouse.h
207
dev_warn(&(psmouse)->ps2dev.serio->dev, \
drivers/input/mouse/psmouse.h
209
#define psmouse_err(psmouse, format, ...) \
drivers/input/mouse/psmouse.h
210
dev_err(&(psmouse)->ps2dev.serio->dev, \
drivers/input/mouse/psmouse.h
212
#define psmouse_notice(psmouse, format, ...) \
drivers/input/mouse/psmouse.h
213
dev_notice(&(psmouse)->ps2dev.serio->dev, \
drivers/input/mouse/psmouse.h
215
#define psmouse_printk(level, psmouse, format, ...) \
drivers/input/mouse/psmouse.h
217
&(psmouse)->ps2dev.serio->dev, \
drivers/input/mouse/psmouse.h
227
int psmouse_smbus_init(struct psmouse *psmouse,
drivers/input/mouse/psmouse.h
232
void psmouse_smbus_cleanup(struct psmouse *psmouse);
drivers/input/mouse/psmouse.h
245
static inline void psmouse_smbus_cleanup(struct psmouse *psmouse)
drivers/input/mouse/psmouse.h
75
struct psmouse;
drivers/input/mouse/psmouse.h
85
int (*detect)(struct psmouse *, bool);
drivers/input/mouse/psmouse.h
86
int (*init)(struct psmouse *);
drivers/input/mouse/sentelic.c
1000
if (fsp_detect(psmouse, 0))
drivers/input/mouse/sentelic.c
1003
if (fsp_get_version(psmouse, &version))
drivers/input/mouse/sentelic.c
1006
if (fsp_activate_protocol(psmouse))
drivers/input/mouse/sentelic.c
1012
int fsp_init(struct psmouse *psmouse)
drivers/input/mouse/sentelic.c
1018
if (fsp_get_version(psmouse, &ver) ||
drivers/input/mouse/sentelic.c
1019
fsp_get_revision(psmouse, &rev)) {
drivers/input/mouse/sentelic.c
1024
fsp_get_sn(psmouse, &sn);
drivers/input/mouse/sentelic.c
1027
psmouse_info(psmouse,
drivers/input/mouse/sentelic.c
1031
psmouse->private = priv = kzalloc_obj(*priv);
drivers/input/mouse/sentelic.c
1038
psmouse->protocol_handler = fsp_process_byte;
drivers/input/mouse/sentelic.c
1039
psmouse->disconnect = fsp_disconnect;
drivers/input/mouse/sentelic.c
1040
psmouse->reconnect = fsp_reconnect;
drivers/input/mouse/sentelic.c
1041
psmouse->cleanup = fsp_reset;
drivers/input/mouse/sentelic.c
1042
psmouse->pktsize = 4;
drivers/input/mouse/sentelic.c
1044
error = fsp_activate_protocol(psmouse);
drivers/input/mouse/sentelic.c
1049
error = fsp_set_input_params(psmouse);
drivers/input/mouse/sentelic.c
1053
error = sysfs_create_group(&psmouse->ps2dev.serio->dev.kobj,
drivers/input/mouse/sentelic.c
1056
psmouse_err(psmouse,
drivers/input/mouse/sentelic.c
1064
kfree(psmouse->private);
drivers/input/mouse/sentelic.c
1065
psmouse->private = NULL;
drivers/input/mouse/sentelic.c
121
psmouse_activate(psmouse);
drivers/input/mouse/sentelic.c
122
psmouse_dbg(psmouse,
drivers/input/mouse/sentelic.c
128
static int fsp_reg_write(struct psmouse *psmouse, int reg_addr, int reg_val)
drivers/input/mouse/sentelic.c
130
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/sentelic.c
174
psmouse_dbg(psmouse,
drivers/input/mouse/sentelic.c
181
static int fsp_reg_write_enable(struct psmouse *psmouse, bool enable)
drivers/input/mouse/sentelic.c
185
if (fsp_reg_read(psmouse, FSP_REG_SYSCTL1, &v) == -1)
drivers/input/mouse/sentelic.c
195
if (fsp_reg_write(psmouse, FSP_REG_SYSCTL1, nv) == -1)
drivers/input/mouse/sentelic.c
201
static int fsp_page_reg_read(struct psmouse *psmouse, int *reg_val)
drivers/input/mouse/sentelic.c
203
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/sentelic.c
207
psmouse_deactivate(psmouse);
drivers/input/mouse/sentelic.c
232
psmouse_activate(psmouse);
drivers/input/mouse/sentelic.c
233
psmouse_dbg(psmouse,
drivers/input/mouse/sentelic.c
239
static int fsp_page_reg_write(struct psmouse *psmouse, int reg_val)
drivers/input/mouse/sentelic.c
241
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/sentelic.c
271
psmouse_dbg(psmouse,
drivers/input/mouse/sentelic.c
277
static int fsp_get_version(struct psmouse *psmouse, int *version)
drivers/input/mouse/sentelic.c
279
if (fsp_reg_read(psmouse, FSP_REG_VERSION, version))
drivers/input/mouse/sentelic.c
285
static int fsp_get_revision(struct psmouse *psmouse, int *rev)
drivers/input/mouse/sentelic.c
287
if (fsp_reg_read(psmouse, FSP_REG_REVISION, rev))
drivers/input/mouse/sentelic.c
293
static int fsp_get_sn(struct psmouse *psmouse, int *sn)
drivers/input/mouse/sentelic.c
299
if (fsp_page_reg_write(psmouse, FSP_PAGE_0B))
drivers/input/mouse/sentelic.c
301
if (fsp_reg_read(psmouse, FSP_REG_SN0, &v0))
drivers/input/mouse/sentelic.c
303
if (fsp_reg_read(psmouse, FSP_REG_SN1, &v1))
drivers/input/mouse/sentelic.c
305
if (fsp_reg_read(psmouse, FSP_REG_SN2, &v2))
drivers/input/mouse/sentelic.c
310
fsp_page_reg_write(psmouse, FSP_PAGE_DEFAULT);
drivers/input/mouse/sentelic.c
314
static int fsp_get_buttons(struct psmouse *psmouse, int *btn)
drivers/input/mouse/sentelic.c
324
if (fsp_reg_read(psmouse, FSP_REG_TMOD_STATUS, &val) == -1)
drivers/input/mouse/sentelic.c
332
static int fsp_opc_tag_enable(struct psmouse *psmouse, bool enable)
drivers/input/mouse/sentelic.c
337
if (fsp_reg_read(psmouse, FSP_REG_OPC_QDOWN, &v) == -1) {
drivers/input/mouse/sentelic.c
338
psmouse_err(psmouse, "Unable get OPC state.\n");
drivers/input/mouse/sentelic.c
349
fsp_reg_write_enable(psmouse, true);
drivers/input/mouse/sentelic.c
350
res = fsp_reg_write(psmouse, FSP_REG_OPC_QDOWN, nv);
drivers/input/mouse/sentelic.c
351
fsp_reg_write_enable(psmouse, false);
drivers/input/mouse/sentelic.c
355
psmouse_err(psmouse, "Unable to enable OPC tag.\n");
drivers/input/mouse/sentelic.c
362
static int fsp_onpad_vscr(struct psmouse *psmouse, bool enable)
drivers/input/mouse/sentelic.c
364
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
367
if (fsp_reg_read(psmouse, FSP_REG_ONPAD_CTL, &val))
drivers/input/mouse/sentelic.c
377
if (fsp_reg_write(psmouse, FSP_REG_ONPAD_CTL, val))
drivers/input/mouse/sentelic.c
383
static int fsp_onpad_hscr(struct psmouse *psmouse, bool enable)
drivers/input/mouse/sentelic.c
385
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
388
if (fsp_reg_read(psmouse, FSP_REG_ONPAD_CTL, &val))
drivers/input/mouse/sentelic.c
391
if (fsp_reg_read(psmouse, FSP_REG_SYSCTL5, &v2))
drivers/input/mouse/sentelic.c
404
if (fsp_reg_write(psmouse, FSP_REG_ONPAD_CTL, val))
drivers/input/mouse/sentelic.c
408
if (fsp_reg_write(psmouse, FSP_REG_SYSCTL5, v2))
drivers/input/mouse/sentelic.c
419
static ssize_t fsp_attr_set_setreg(struct psmouse *psmouse, void *data,
drivers/input/mouse/sentelic.c
437
if (fsp_reg_write_enable(psmouse, true))
drivers/input/mouse/sentelic.c
440
retval = fsp_reg_write(psmouse, reg, val) < 0 ? -EIO : count;
drivers/input/mouse/sentelic.c
442
fsp_reg_write_enable(psmouse, false);
drivers/input/mouse/sentelic.c
449
static ssize_t fsp_attr_show_getreg(struct psmouse *psmouse,
drivers/input/mouse/sentelic.c
452
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
462
static ssize_t fsp_attr_set_getreg(struct psmouse *psmouse, void *data,
drivers/input/mouse/sentelic.c
465
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
476
if (fsp_reg_read(psmouse, reg, &val))
drivers/input/mouse/sentelic.c
488
static ssize_t fsp_attr_show_pagereg(struct psmouse *psmouse,
drivers/input/mouse/sentelic.c
493
if (fsp_page_reg_read(psmouse, &val))
drivers/input/mouse/sentelic.c
499
static ssize_t fsp_attr_set_pagereg(struct psmouse *psmouse, void *data,
drivers/input/mouse/sentelic.c
512
if (fsp_page_reg_write(psmouse, val))
drivers/input/mouse/sentelic.c
521
static ssize_t fsp_attr_show_vscroll(struct psmouse *psmouse,
drivers/input/mouse/sentelic.c
524
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
529
static ssize_t fsp_attr_set_vscroll(struct psmouse *psmouse, void *data,
drivers/input/mouse/sentelic.c
542
fsp_onpad_vscr(psmouse, val);
drivers/input/mouse/sentelic.c
550
static ssize_t fsp_attr_show_hscroll(struct psmouse *psmouse,
drivers/input/mouse/sentelic.c
553
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
558
static ssize_t fsp_attr_set_hscroll(struct psmouse *psmouse, void *data,
drivers/input/mouse/sentelic.c
571
fsp_onpad_hscr(psmouse, val);
drivers/input/mouse/sentelic.c
579
static ssize_t fsp_attr_show_flags(struct psmouse *psmouse,
drivers/input/mouse/sentelic.c
582
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
588
static ssize_t fsp_attr_set_flags(struct psmouse *psmouse, void *data,
drivers/input/mouse/sentelic.c
591
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
612
static ssize_t fsp_attr_show_ver(struct psmouse *psmouse,
drivers/input/mouse/sentelic.c
636
static void fsp_packet_debug(struct psmouse *psmouse, unsigned char packet[])
drivers/input/mouse/sentelic.c
664
psmouse_dbg(psmouse,
drivers/input/mouse/sentelic.c
671
psmouse_dbg(psmouse, "PS/2 packets/sec = %d\n", ps2_packet_cnt);
drivers/input/mouse/sentelic.c
677
static void fsp_packet_debug(struct psmouse *psmouse, unsigned char packet[])
drivers/input/mouse/sentelic.c
693
static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse)
drivers/input/mouse/sentelic.c
695
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/sentelic.c
696
struct fsp_data *ad = psmouse->private;
drivers/input/mouse/sentelic.c
697
unsigned char *packet = psmouse->packet;
drivers/input/mouse/sentelic.c
701
if (psmouse->pktcnt < 4)
drivers/input/mouse/sentelic.c
708
fsp_packet_debug(psmouse, packet);
drivers/input/mouse/sentelic.c
71
static int fsp_reg_read(struct psmouse *psmouse, int reg_addr, int *reg_val)
drivers/input/mouse/sentelic.c
710
switch (psmouse->packet[0] >> FSP_PKT_TYPE_SHIFT) {
drivers/input/mouse/sentelic.c
73
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/sentelic.c
838
static int fsp_activate_protocol(struct psmouse *psmouse)
drivers/input/mouse/sentelic.c
84
psmouse_deactivate(psmouse);
drivers/input/mouse/sentelic.c
840
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
841
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/sentelic.c
858
psmouse_err(psmouse,
drivers/input/mouse/sentelic.c
865
if (fsp_reg_read(psmouse, FSP_REG_SYSCTL5, &val)) {
drivers/input/mouse/sentelic.c
866
psmouse_err(psmouse,
drivers/input/mouse/sentelic.c
871
if (fsp_get_buttons(psmouse, &pad->buttons)) {
drivers/input/mouse/sentelic.c
872
psmouse_err(psmouse,
drivers/input/mouse/sentelic.c
885
if (fsp_reg_write(psmouse, FSP_REG_SYSCTL5, val)) {
drivers/input/mouse/sentelic.c
886
psmouse_err(psmouse,
drivers/input/mouse/sentelic.c
895
if (fsp_opc_tag_enable(psmouse, true))
drivers/input/mouse/sentelic.c
896
psmouse_warn(psmouse,
drivers/input/mouse/sentelic.c
902
fsp_onpad_vscr(psmouse, true);
drivers/input/mouse/sentelic.c
903
fsp_onpad_hscr(psmouse, true);
drivers/input/mouse/sentelic.c
906
if (fsp_reg_write(psmouse, FSP_REG_SWC1,
drivers/input/mouse/sentelic.c
911
psmouse_err(psmouse,
drivers/input/mouse/sentelic.c
920
static int fsp_set_input_params(struct psmouse *psmouse)
drivers/input/mouse/sentelic.c
922
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/sentelic.c
923
struct fsp_data *pad = psmouse->private;
drivers/input/mouse/sentelic.c
962
int fsp_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/sentelic.c
966
if (fsp_reg_read(psmouse, FSP_REG_DEVICE_ID, &id))
drivers/input/mouse/sentelic.c
973
psmouse->vendor = "Sentelic";
drivers/input/mouse/sentelic.c
974
psmouse->name = "FingerSensingPad";
drivers/input/mouse/sentelic.c
980
static void fsp_reset(struct psmouse *psmouse)
drivers/input/mouse/sentelic.c
982
fsp_opc_tag_enable(psmouse, false);
drivers/input/mouse/sentelic.c
983
fsp_onpad_vscr(psmouse, false);
drivers/input/mouse/sentelic.c
984
fsp_onpad_hscr(psmouse, false);
drivers/input/mouse/sentelic.c
987
static void fsp_disconnect(struct psmouse *psmouse)
drivers/input/mouse/sentelic.c
989
sysfs_remove_group(&psmouse->ps2dev.serio->dev.kobj,
drivers/input/mouse/sentelic.c
992
fsp_reset(psmouse);
drivers/input/mouse/sentelic.c
993
kfree(psmouse->private);
drivers/input/mouse/sentelic.c
996
static int fsp_reconnect(struct psmouse *psmouse)
drivers/input/mouse/sentelic.h
109
extern int fsp_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/sentelic.h
110
extern int fsp_init(struct psmouse *psmouse);
drivers/input/mouse/synaptics.c
1003
static void synaptics_report_buttons(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1006
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/synaptics.c
1007
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1020
synaptics_report_ext_buttons(psmouse, hw);
drivers/input/mouse/synaptics.c
1023
static void synaptics_report_mt_data(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1027
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/synaptics.c
1028
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1058
synaptics_report_buttons(psmouse, sgm);
drivers/input/mouse/synaptics.c
1063
static void synaptics_image_sensor_process(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1066
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1084
synaptics_report_mt_data(psmouse, sgm, num_fingers);
drivers/input/mouse/synaptics.c
1099
static void synaptics_process_packet(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1101
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/synaptics.c
1102
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1108
if (synaptics_parse_hw_state(psmouse->packet, priv, &hw))
drivers/input/mouse/synaptics.c
111
psmouse->vendor = "Synaptics";
drivers/input/mouse/synaptics.c
1112
synaptics_image_sensor_process(psmouse, &hw);
drivers/input/mouse/synaptics.c
112
psmouse->name = "TouchPad";
drivers/input/mouse/synaptics.c
1164
synaptics_report_mt_data(psmouse, &hw, num_fingers);
drivers/input/mouse/synaptics.c
118
void synaptics_reset(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1194
synaptics_report_buttons(psmouse, &hw);
drivers/input/mouse/synaptics.c
1199
static bool synaptics_validate_byte(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1207
const u8 *packet = psmouse->packet;
drivers/input/mouse/synaptics.c
121
synaptics_mode_cmd(psmouse, 0);
drivers/input/mouse/synaptics.c
1225
psmouse_err(psmouse, "unknown packet type %d\n", pkt_type);
drivers/input/mouse/synaptics.c
1231
synaptics_detect_pkt_type(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1236
if (!synaptics_validate_byte(psmouse, i, SYN_NEWABS_STRICT)) {
drivers/input/mouse/synaptics.c
1237
psmouse_info(psmouse, "using relaxed packet validation\n");
drivers/input/mouse/synaptics.c
1245
static psmouse_ret_t synaptics_process_byte(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1247
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1249
if (psmouse->pktcnt >= 6) { /* Full packet received */
drivers/input/mouse/synaptics.c
1251
priv->pkt_type = synaptics_detect_pkt_type(psmouse);
drivers/input/mouse/synaptics.c
1254
synaptics_is_pt_packet(psmouse->packet)) {
drivers/input/mouse/synaptics.c
1255
synaptics_pass_pt_packet(priv, psmouse->packet);
drivers/input/mouse/synaptics.c
1257
synaptics_process_packet(psmouse);
drivers/input/mouse/synaptics.c
1263
return synaptics_validate_byte(psmouse, psmouse->pktcnt - 1, priv->pkt_type) ?
drivers/input/mouse/synaptics.c
1287
static int set_input_params(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1290
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/synaptics.c
1389
if (psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) &&
drivers/input/mouse/synaptics.c
1397
static ssize_t synaptics_show_disable_gesture(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1400
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1405
static ssize_t synaptics_set_disable_gesture(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1409
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1429
if (synaptics_mode_cmd(psmouse, priv->mode))
drivers/input/mouse/synaptics.c
1439
static void synaptics_disconnect(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1441
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1447
psmouse_smbus_cleanup(psmouse);
drivers/input/mouse/synaptics.c
1451
device_remove_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/synaptics.c
1454
synaptics_reset(psmouse);
drivers/input/mouse/synaptics.c
1456
psmouse->private = NULL;
drivers/input/mouse/synaptics.c
1459
static int synaptics_reconnect(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1461
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
1468
psmouse_reset(psmouse);
drivers/input/mouse/synaptics.c
1479
ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETID);
drivers/input/mouse/synaptics.c
1480
error = synaptics_detect(psmouse, 0);
drivers/input/mouse/synaptics.c
1487
psmouse_dbg(psmouse, "reconnected after %d tries\n", retry);
drivers/input/mouse/synaptics.c
1489
error = synaptics_query_hardware(psmouse, &info);
drivers/input/mouse/synaptics.c
1491
psmouse_err(psmouse, "Unable to query device.\n");
drivers/input/mouse/synaptics.c
1495
error = synaptics_set_mode(psmouse);
drivers/input/mouse/synaptics.c
1497
psmouse_err(psmouse, "Unable to initialize device.\n");
drivers/input/mouse/synaptics.c
1505
psmouse_err(psmouse,
drivers/input/mouse/synaptics.c
1591
static int synaptics_init_ps2(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1598
synaptics_apply_quirks(psmouse, info);
drivers/input/mouse/synaptics.c
1600
psmouse->private = priv = kzalloc_obj(*priv);
drivers/input/mouse/synaptics.c
1613
priv->is_forcepad = psmouse_matches_pnp_id(psmouse, forcepad_pnp_ids);
drivers/input/mouse/synaptics.c
1615
err = synaptics_set_mode(psmouse);
drivers/input/mouse/synaptics.c
1617
psmouse_err(psmouse, "Unable to initialize device.\n");
drivers/input/mouse/synaptics.c
1624
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
1632
err = set_input_params(psmouse, priv);
drivers/input/mouse/synaptics.c
1634
psmouse_err(psmouse,
drivers/input/mouse/synaptics.c
1646
psmouse->model = ((info->model_id & 0x00ff0000) >> 8) |
drivers/input/mouse/synaptics.c
1650
psmouse->protocol_handler = synaptics_process_byte;
drivers/input/mouse/synaptics.c
1651
psmouse->pktsize = 6;
drivers/input/mouse/synaptics.c
1654
psmouse->protocol_handler = psmouse_process_byte;
drivers/input/mouse/synaptics.c
1655
psmouse->pktsize = 3;
drivers/input/mouse/synaptics.c
1658
psmouse->set_rate = synaptics_set_rate;
drivers/input/mouse/synaptics.c
1659
psmouse->disconnect = synaptics_disconnect;
drivers/input/mouse/synaptics.c
1660
psmouse->reconnect = synaptics_reconnect;
drivers/input/mouse/synaptics.c
1661
psmouse->fast_reconnect = NULL;
drivers/input/mouse/synaptics.c
1662
psmouse->cleanup = synaptics_reset;
drivers/input/mouse/synaptics.c
1664
psmouse->resync_time = 0;
drivers/input/mouse/synaptics.c
1667
synaptics_pt_create(psmouse);
drivers/input/mouse/synaptics.c
1674
if (psmouse->rate >= 80 && impaired_toshiba_kbc) {
drivers/input/mouse/synaptics.c
1675
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
1678
psmouse->rate = 40;
drivers/input/mouse/synaptics.c
1682
err = device_create_file(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/synaptics.c
1685
psmouse_err(psmouse,
drivers/input/mouse/synaptics.c
1699
static int __synaptics_init(struct psmouse *psmouse, bool absolute_mode)
drivers/input/mouse/synaptics.c
1704
psmouse_reset(psmouse);
drivers/input/mouse/synaptics.c
1706
error = synaptics_query_hardware(psmouse, &info);
drivers/input/mouse/synaptics.c
1708
psmouse_err(psmouse, "Unable to query device: %d\n", error);
drivers/input/mouse/synaptics.c
1712
return synaptics_init_ps2(psmouse, &info, absolute_mode);
drivers/input/mouse/synaptics.c
1715
int synaptics_init_absolute(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1717
return __synaptics_init(psmouse, true);
drivers/input/mouse/synaptics.c
1720
int synaptics_init_relative(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1722
return __synaptics_init(psmouse, false);
drivers/input/mouse/synaptics.c
1725
static int synaptics_setup_ps2(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1738
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
1743
error = synaptics_init_ps2(psmouse, info, absolute_mode);
drivers/input/mouse/synaptics.c
1757
synaptics_setup_ps2(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1783
static int synaptics_create_intertouch(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1788
psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) &&
drivers/input/mouse/synaptics.c
1809
return psmouse_smbus_init(psmouse, &intertouch_board,
drivers/input/mouse/synaptics.c
1818
static int synaptics_setup_intertouch(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1828
if (!psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids) &&
drivers/input/mouse/synaptics.c
1829
!psmouse_matches_pnp_id(psmouse, smbus_pnp_ids)) {
drivers/input/mouse/synaptics.c
1831
if (!psmouse_matches_pnp_id(psmouse, forcepad_pnp_ids))
drivers/input/mouse/synaptics.c
1832
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
1835
psmouse->ps2dev.serio->firmware_id);
drivers/input/mouse/synaptics.c
1841
psmouse_info(psmouse, "Trying to set up SMBus access\n");
drivers/input/mouse/synaptics.c
1843
error = synaptics_create_intertouch(psmouse, info, leave_breadcrumbs);
drivers/input/mouse/synaptics.c
1846
psmouse_info(psmouse, "SMbus companion is not ready yet\n");
drivers/input/mouse/synaptics.c
1848
psmouse_err(psmouse, "unable to create intertouch device\n");
drivers/input/mouse/synaptics.c
1856
int synaptics_init_smbus(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1861
psmouse_reset(psmouse);
drivers/input/mouse/synaptics.c
1863
error = synaptics_query_hardware(psmouse, &info);
drivers/input/mouse/synaptics.c
1865
psmouse_err(psmouse, "Unable to query device: %d\n", error);
drivers/input/mouse/synaptics.c
1872
return synaptics_create_intertouch(psmouse, &info, false);
drivers/input/mouse/synaptics.c
1878
synaptics_setup_intertouch(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
1885
int synaptics_init_smbus(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1895
int synaptics_init(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
1901
psmouse_reset(psmouse);
drivers/input/mouse/synaptics.c
1903
error = synaptics_query_hardware(psmouse, &info);
drivers/input/mouse/synaptics.c
1905
psmouse_err(psmouse, "Unable to query device: %d\n", error);
drivers/input/mouse/synaptics.c
1913
!psmouse_matches_pnp_id(psmouse, forcepad_pnp_ids)) {
drivers/input/mouse/synaptics.c
1914
psmouse_warn(psmouse,
drivers/input/mouse/synaptics.c
1919
error = synaptics_setup_intertouch(psmouse, &info, true);
drivers/input/mouse/synaptics.c
1924
retval = synaptics_setup_ps2(psmouse, &info);
drivers/input/mouse/synaptics.c
1930
psmouse_smbus_cleanup(psmouse);
drivers/input/mouse/synaptics.c
1938
int synaptics_init(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
216
static int synaptics_send_cmd(struct psmouse *psmouse, u8 cmd, u8 *param)
drivers/input/mouse/synaptics.c
220
error = ps2_sliced_command(&psmouse->ps2dev, cmd);
drivers/input/mouse/synaptics.c
224
error = ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_GETINFO);
drivers/input/mouse/synaptics.c
231
static int synaptics_query_int(struct psmouse *psmouse, u8 query_cmd, u32 *val)
drivers/input/mouse/synaptics.c
239
error = synaptics_send_cmd(psmouse, query_cmd, resp.buf + 1);
drivers/input/mouse/synaptics.c
251
static int synaptics_identify(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
256
error = synaptics_query_int(psmouse, SYN_QUE_IDENTIFY, &info->identity);
drivers/input/mouse/synaptics.c
267
static int synaptics_model_id(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
270
return synaptics_query_int(psmouse, SYN_QUE_MODEL, &info->model_id);
drivers/input/mouse/synaptics.c
276
static int synaptics_firmware_id(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
279
return synaptics_query_int(psmouse, SYN_QUE_FIRMWARE_ID,
drivers/input/mouse/synaptics.c
287
static int synaptics_query_modes(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
297
error = synaptics_send_cmd(psmouse, SYN_QUE_MODES, bid);
drivers/input/mouse/synaptics.c
304
return synaptics_query_int(psmouse, SYN_QUE_MEXT_CAPAB_10,
drivers/input/mouse/synaptics.c
314
static int synaptics_capability(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
319
error = synaptics_query_int(psmouse, SYN_QUE_CAPABILITIES,
drivers/input/mouse/synaptics.c
341
error = synaptics_query_int(psmouse, SYN_QUE_EXT_CAPAB,
drivers/input/mouse/synaptics.c
344
psmouse_warn(psmouse,
drivers/input/mouse/synaptics.c
357
error = synaptics_query_int(psmouse, SYN_QUE_EXT_CAPAB_0C,
drivers/input/mouse/synaptics.c
360
psmouse_warn(psmouse,
drivers/input/mouse/synaptics.c
371
static int synaptics_resolution(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
380
error = synaptics_send_cmd(psmouse, SYN_QUE_RESOLUTION, resp);
drivers/input/mouse/synaptics.c
390
error = synaptics_send_cmd(psmouse,
drivers/input/mouse/synaptics.c
393
psmouse_warn(psmouse,
drivers/input/mouse/synaptics.c
398
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
412
error = synaptics_send_cmd(psmouse,
drivers/input/mouse/synaptics.c
415
psmouse_warn(psmouse,
drivers/input/mouse/synaptics.c
420
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
429
static int synaptics_query_hardware(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
436
error = synaptics_identify(psmouse, info);
drivers/input/mouse/synaptics.c
440
error = synaptics_model_id(psmouse, info);
drivers/input/mouse/synaptics.c
444
error = synaptics_firmware_id(psmouse, info);
drivers/input/mouse/synaptics.c
448
error = synaptics_query_modes(psmouse, info);
drivers/input/mouse/synaptics.c
452
error = synaptics_capability(psmouse, info);
drivers/input/mouse/synaptics.c
456
error = synaptics_resolution(psmouse, info);
drivers/input/mouse/synaptics.c
536
static void synaptics_apply_quirks(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
542
if (!psmouse_matches_pnp_id(psmouse,
drivers/input/mouse/synaptics.c
558
psmouse_info(psmouse,
drivers/input/mouse/synaptics.c
572
static int synaptics_set_advanced_gesture_mode(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
577
error = ps2_sliced_command(&psmouse->ps2dev, SYN_QUE_MODEL);
drivers/input/mouse/synaptics.c
581
error = ps2_command(&psmouse->ps2dev, ¶m, PSMOUSE_CMD_SETRATE);
drivers/input/mouse/synaptics.c
588
static int synaptics_set_mode(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
590
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
598
if (psmouse->rate >= 80)
drivers/input/mouse/synaptics.c
603
error = synaptics_mode_cmd(psmouse, priv->mode);
drivers/input/mouse/synaptics.c
608
error = synaptics_set_advanced_gesture_mode(psmouse);
drivers/input/mouse/synaptics.c
610
psmouse_err(psmouse,
drivers/input/mouse/synaptics.c
620
static void synaptics_set_rate(struct psmouse *psmouse, unsigned int rate)
drivers/input/mouse/synaptics.c
622
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
626
psmouse->rate = 80;
drivers/input/mouse/synaptics.c
629
psmouse->rate = 40;
drivers/input/mouse/synaptics.c
632
synaptics_mode_cmd(psmouse, priv->mode);
drivers/input/mouse/synaptics.c
640
struct psmouse *parent = psmouse_from_serio(serio->parent);
drivers/input/mouse/synaptics.c
657
struct psmouse *parent = psmouse_from_serio(serio->parent);
drivers/input/mouse/synaptics.c
668
struct psmouse *parent = psmouse_from_serio(serio->parent);
drivers/input/mouse/synaptics.c
677
struct psmouse *parent = psmouse_from_serio(serio->parent);
drivers/input/mouse/synaptics.c
688
struct psmouse *parent = psmouse_from_serio(serio->parent);
drivers/input/mouse/synaptics.c
711
struct psmouse *child = psmouse_from_serio(ptport);
drivers/input/mouse/synaptics.c
722
static void synaptics_pt_activate(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
724
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
725
struct psmouse *child = psmouse_from_serio(priv->pt_port);
drivers/input/mouse/synaptics.c
734
if (synaptics_mode_cmd(psmouse, priv->mode))
drivers/input/mouse/synaptics.c
735
psmouse_warn(psmouse,
drivers/input/mouse/synaptics.c
740
static void synaptics_pt_create(struct psmouse *psmouse)
drivers/input/mouse/synaptics.c
746
psmouse_err(psmouse,
drivers/input/mouse/synaptics.c
759
serio->parent = psmouse->ps2dev.serio;
drivers/input/mouse/synaptics.c
761
psmouse->pt_activate = synaptics_pt_activate;
drivers/input/mouse/synaptics.c
763
psmouse_info(psmouse, "serio: %s port at %s\n",
drivers/input/mouse/synaptics.c
764
serio->name, psmouse->phys);
drivers/input/mouse/synaptics.c
79
static int synaptics_mode_cmd(struct psmouse *psmouse, u8 mode)
drivers/input/mouse/synaptics.c
84
error = ps2_sliced_command(&psmouse->ps2dev, mode);
drivers/input/mouse/synaptics.c
89
error = ps2_command(&psmouse->ps2dev, param, PSMOUSE_CMD_SETRATE);
drivers/input/mouse/synaptics.c
957
static void synaptics_report_ext_buttons(struct psmouse *psmouse,
drivers/input/mouse/synaptics.c
96
int synaptics_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/synaptics.c
960
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/synaptics.c
961
struct synaptics_data *priv = psmouse->private;
drivers/input/mouse/synaptics.c
971
!((psmouse->packet[0] ^ psmouse->packet[3]) & 0x02))
drivers/input/mouse/synaptics.c
98
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/synaptics.h
208
int synaptics_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/synaptics.h
209
int synaptics_init_absolute(struct psmouse *psmouse);
drivers/input/mouse/synaptics.h
210
int synaptics_init_relative(struct psmouse *psmouse);
drivers/input/mouse/synaptics.h
211
int synaptics_init_smbus(struct psmouse *psmouse);
drivers/input/mouse/synaptics.h
212
int synaptics_init(struct psmouse *psmouse);
drivers/input/mouse/synaptics.h
213
void synaptics_reset(struct psmouse *psmouse);
drivers/input/mouse/touchkit_ps2.c
40
static psmouse_ret_t touchkit_ps2_process_byte(struct psmouse *psmouse)
drivers/input/mouse/touchkit_ps2.c
42
unsigned char *packet = psmouse->packet;
drivers/input/mouse/touchkit_ps2.c
43
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/touchkit_ps2.c
45
if (psmouse->pktcnt != 5)
drivers/input/mouse/touchkit_ps2.c
56
int touchkit_ps2_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/touchkit_ps2.c
58
struct input_dev *dev = psmouse->dev;
drivers/input/mouse/touchkit_ps2.c
66
if (ps2_command(&psmouse->ps2dev, param, command))
drivers/input/mouse/touchkit_ps2.c
80
psmouse->vendor = "eGalax";
drivers/input/mouse/touchkit_ps2.c
81
psmouse->name = "Touchscreen";
drivers/input/mouse/touchkit_ps2.c
82
psmouse->protocol_handler = touchkit_ps2_process_byte;
drivers/input/mouse/touchkit_ps2.c
83
psmouse->pktsize = 5;
drivers/input/mouse/touchkit_ps2.h
12
int touchkit_ps2_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/trackpoint.c
104
static ssize_t trackpoint_show_int_attr(struct psmouse *psmouse,
drivers/input/mouse/trackpoint.c
107
struct trackpoint_data *tp = psmouse->private;
drivers/input/mouse/trackpoint.c
117
static ssize_t trackpoint_set_int_attr(struct psmouse *psmouse, void *data,
drivers/input/mouse/trackpoint.c
120
struct trackpoint_data *tp = psmouse->private;
drivers/input/mouse/trackpoint.c
131
err = trackpoint_write(&psmouse->ps2dev, attr->command, value);
drivers/input/mouse/trackpoint.c
146
static ssize_t trackpoint_set_bit_attr(struct psmouse *psmouse, void *data,
drivers/input/mouse/trackpoint.c
149
struct trackpoint_data *tp = psmouse->private;
drivers/input/mouse/trackpoint.c
164
err = trackpoint_toggle_bit(&psmouse->ps2dev,
drivers/input/mouse/trackpoint.c
204
static bool trackpoint_is_attr_available(struct psmouse *psmouse,
drivers/input/mouse/trackpoint.c
207
struct trackpoint_data *tp = psmouse->private;
drivers/input/mouse/trackpoint.c
219
struct psmouse *psmouse = psmouse_from_serio(serio);
drivers/input/mouse/trackpoint.c
221
return trackpoint_is_attr_available(psmouse, attr) ? attr->mode : 0;
drivers/input/mouse/trackpoint.c
269
static int trackpoint_start_protocol(struct psmouse *psmouse,
drivers/input/mouse/trackpoint.c
275
error = ps2_command(&psmouse->ps2dev,
drivers/input/mouse/trackpoint.c
303
static int trackpoint_sync(struct psmouse *psmouse, bool in_power_on_state)
drivers/input/mouse/trackpoint.c
305
struct trackpoint_data *tp = psmouse->private;
drivers/input/mouse/trackpoint.c
312
trackpoint_update_bit(&psmouse->ps2dev, TP_TOGGLE_TWOHAND,
drivers/input/mouse/trackpoint.c
315
trackpoint_update_bit(&psmouse->ps2dev, TP_TOGGLE_SOURCE_TAG,
drivers/input/mouse/trackpoint.c
318
trackpoint_update_bit(&psmouse->ps2dev, TP_TOGGLE_MB,
drivers/input/mouse/trackpoint.c
327
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, sensitivity);
drivers/input/mouse/trackpoint.c
328
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, inertia);
drivers/input/mouse/trackpoint.c
329
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, speed);
drivers/input/mouse/trackpoint.c
330
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, reach);
drivers/input/mouse/trackpoint.c
331
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, draghys);
drivers/input/mouse/trackpoint.c
332
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, mindrag);
drivers/input/mouse/trackpoint.c
333
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, thresh);
drivers/input/mouse/trackpoint.c
334
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, upthresh);
drivers/input/mouse/trackpoint.c
335
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, ztime);
drivers/input/mouse/trackpoint.c
336
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, jenks);
drivers/input/mouse/trackpoint.c
337
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, drift_time);
drivers/input/mouse/trackpoint.c
340
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, press_to_select);
drivers/input/mouse/trackpoint.c
341
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, skipback);
drivers/input/mouse/trackpoint.c
342
TRACKPOINT_UPDATE(in_power_on_state, psmouse, tp, ext_dev);
drivers/input/mouse/trackpoint.c
367
static void trackpoint_disconnect(struct psmouse *psmouse)
drivers/input/mouse/trackpoint.c
369
device_remove_group(&psmouse->ps2dev.serio->dev,
drivers/input/mouse/trackpoint.c
372
kfree(psmouse->private);
drivers/input/mouse/trackpoint.c
373
psmouse->private = NULL;
drivers/input/mouse/trackpoint.c
376
static int trackpoint_reconnect(struct psmouse *psmouse)
drivers/input/mouse/trackpoint.c
378
struct trackpoint_data *tp = psmouse->private;
drivers/input/mouse/trackpoint.c
382
error = trackpoint_start_protocol(psmouse, NULL, NULL);
drivers/input/mouse/trackpoint.c
387
trackpoint_power_on_reset(&psmouse->ps2dev) == 0;
drivers/input/mouse/trackpoint.c
389
error = trackpoint_sync(psmouse, was_reset);
drivers/input/mouse/trackpoint.c
396
int trackpoint_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/trackpoint.c
398
struct ps2dev *ps2dev = &psmouse->ps2dev;
drivers/input/mouse/trackpoint.c
405
error = trackpoint_start_protocol(psmouse, &variant_id, &firmware_id);
drivers/input/mouse/trackpoint.c
420
psmouse->private = tp;
drivers/input/mouse/trackpoint.c
422
psmouse->vendor = trackpoint_variants[variant_id];
drivers/input/mouse/trackpoint.c
423
psmouse->name = "TrackPoint";
drivers/input/mouse/trackpoint.c
425
psmouse->reconnect = trackpoint_reconnect;
drivers/input/mouse/trackpoint.c
426
psmouse->disconnect = trackpoint_disconnect;
drivers/input/mouse/trackpoint.c
434
psmouse_warn(psmouse,
drivers/input/mouse/trackpoint.c
438
psmouse_warn(psmouse,
drivers/input/mouse/trackpoint.c
445
input_set_capability(psmouse->dev, EV_KEY, BTN_MIDDLE);
drivers/input/mouse/trackpoint.c
447
__set_bit(INPUT_PROP_POINTER, psmouse->dev->propbit);
drivers/input/mouse/trackpoint.c
448
__set_bit(INPUT_PROP_POINTING_STICK, psmouse->dev->propbit);
drivers/input/mouse/trackpoint.c
455
trackpoint_sync(psmouse, false);
drivers/input/mouse/trackpoint.c
460
psmouse_err(psmouse,
drivers/input/mouse/trackpoint.c
463
kfree(psmouse->private);
drivers/input/mouse/trackpoint.c
464
psmouse->private = NULL;
drivers/input/mouse/trackpoint.c
468
psmouse_info(psmouse,
drivers/input/mouse/trackpoint.c
470
psmouse->vendor, firmware_id,
drivers/input/mouse/trackpoint.h
160
int trackpoint_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/vmmouse.c
116
static psmouse_ret_t vmmouse_report_events(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
118
struct input_dev *rel_dev = psmouse->dev;
drivers/input/mouse/vmmouse.c
119
struct vmmouse_data *priv = psmouse->private;
drivers/input/mouse/vmmouse.c
130
psmouse_err(psmouse, "failed to fetch status data\n");
drivers/input/mouse/vmmouse.c
143
psmouse_err(psmouse, "invalid queue length\n");
drivers/input/mouse/vmmouse.c
171
vmmouse_report_button(psmouse, abs_dev, rel_dev,
drivers/input/mouse/vmmouse.c
174
vmmouse_report_button(psmouse, abs_dev, rel_dev,
drivers/input/mouse/vmmouse.c
177
vmmouse_report_button(psmouse, abs_dev, rel_dev,
drivers/input/mouse/vmmouse.c
197
static psmouse_ret_t vmmouse_process_byte(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
199
unsigned char *packet = psmouse->packet;
drivers/input/mouse/vmmouse.c
201
switch (psmouse->pktcnt) {
drivers/input/mouse/vmmouse.c
210
return vmmouse_report_events(psmouse);
drivers/input/mouse/vmmouse.c
221
static void vmmouse_disable(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
229
psmouse_warn(psmouse, "failed to disable vmmouse device\n");
drivers/input/mouse/vmmouse.c
241
static int vmmouse_enable(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
256
psmouse_dbg(psmouse, "empty flags - assuming no device\n");
drivers/input/mouse/vmmouse.c
263
psmouse_dbg(psmouse, "Unexpected version value: %u vs %u\n",
drivers/input/mouse/vmmouse.c
265
vmmouse_disable(psmouse);
drivers/input/mouse/vmmouse.c
311
int vmmouse_detect(struct psmouse *psmouse, bool set_properties)
drivers/input/mouse/vmmouse.c
316
psmouse_dbg(psmouse,
drivers/input/mouse/vmmouse.c
328
psmouse->vendor = VMMOUSE_VENDOR;
drivers/input/mouse/vmmouse.c
329
psmouse->name = VMMOUSE_NAME;
drivers/input/mouse/vmmouse.c
330
psmouse->model = version;
drivers/input/mouse/vmmouse.c
343
static void vmmouse_reset(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
345
vmmouse_disable(psmouse);
drivers/input/mouse/vmmouse.c
346
psmouse_reset(psmouse);
drivers/input/mouse/vmmouse.c
356
static void vmmouse_disconnect(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
358
struct vmmouse_data *priv = psmouse->private;
drivers/input/mouse/vmmouse.c
360
vmmouse_disable(psmouse);
drivers/input/mouse/vmmouse.c
361
psmouse_reset(psmouse);
drivers/input/mouse/vmmouse.c
374
static int vmmouse_reconnect(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
378
psmouse_reset(psmouse);
drivers/input/mouse/vmmouse.c
379
vmmouse_disable(psmouse);
drivers/input/mouse/vmmouse.c
380
error = vmmouse_enable(psmouse);
drivers/input/mouse/vmmouse.c
382
psmouse_err(psmouse,
drivers/input/mouse/vmmouse.c
401
int vmmouse_init(struct psmouse *psmouse)
drivers/input/mouse/vmmouse.c
404
struct input_dev *rel_dev = psmouse->dev, *abs_dev;
drivers/input/mouse/vmmouse.c
407
psmouse_reset(psmouse);
drivers/input/mouse/vmmouse.c
408
error = vmmouse_enable(psmouse);
drivers/input/mouse/vmmouse.c
420
psmouse->private = priv;
drivers/input/mouse/vmmouse.c
424
psmouse->ps2dev.serio->phys);
drivers/input/mouse/vmmouse.c
434
abs_dev->id.version = psmouse->model;
drivers/input/mouse/vmmouse.c
435
abs_dev->dev.parent = &psmouse->ps2dev.serio->dev;
drivers/input/mouse/vmmouse.c
453
psmouse->protocol_handler = vmmouse_process_byte;
drivers/input/mouse/vmmouse.c
454
psmouse->disconnect = vmmouse_disconnect;
drivers/input/mouse/vmmouse.c
455
psmouse->reconnect = vmmouse_reconnect;
drivers/input/mouse/vmmouse.c
456
psmouse->cleanup = vmmouse_reset;
drivers/input/mouse/vmmouse.c
461
vmmouse_disable(psmouse);
drivers/input/mouse/vmmouse.c
462
psmouse_reset(psmouse);
drivers/input/mouse/vmmouse.c
465
psmouse->private = NULL;
drivers/input/mouse/vmmouse.c
90
static void vmmouse_report_button(struct psmouse *psmouse,
drivers/input/mouse/vmmouse.h
13
int vmmouse_detect(struct psmouse *psmouse, bool set_properties);
drivers/input/mouse/vmmouse.h
14
int vmmouse_init(struct psmouse *psmouse);