diff options
| -rw-r--r-- | drivers/input/mouse/alps.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index f9c7f2452264..f0b1060a7fee 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c | |||
| @@ -139,11 +139,11 @@ static const struct alps_model_info alps_model_data[] = { | |||
| 139 | }; | 139 | }; |
| 140 | 140 | ||
| 141 | static const struct alps_protocol_info alps_v3_protocol_data = { | 141 | static const struct alps_protocol_info alps_v3_protocol_data = { |
| 142 | ALPS_PROTO_V3, 0x8f, 0x8f, ALPS_DUALPOINT | 142 | ALPS_PROTO_V3, 0x8f, 0x8f, ALPS_DUALPOINT | ALPS_DUALPOINT_WITH_PRESSURE |
| 143 | }; | 143 | }; |
| 144 | 144 | ||
| 145 | static const struct alps_protocol_info alps_v3_rushmore_data = { | 145 | static const struct alps_protocol_info alps_v3_rushmore_data = { |
| 146 | ALPS_PROTO_V3_RUSHMORE, 0x8f, 0x8f, ALPS_DUALPOINT | 146 | ALPS_PROTO_V3_RUSHMORE, 0x8f, 0x8f, ALPS_DUALPOINT | ALPS_DUALPOINT_WITH_PRESSURE |
| 147 | }; | 147 | }; |
| 148 | 148 | ||
| 149 | static const struct alps_protocol_info alps_v4_protocol_data = { | 149 | static const struct alps_protocol_info alps_v4_protocol_data = { |
| @@ -155,7 +155,7 @@ static const struct alps_protocol_info alps_v5_protocol_data = { | |||
| 155 | }; | 155 | }; |
| 156 | 156 | ||
| 157 | static const struct alps_protocol_info alps_v7_protocol_data = { | 157 | static const struct alps_protocol_info alps_v7_protocol_data = { |
| 158 | ALPS_PROTO_V7, 0x48, 0x48, ALPS_DUALPOINT | 158 | ALPS_PROTO_V7, 0x48, 0x48, ALPS_DUALPOINT | ALPS_DUALPOINT_WITH_PRESSURE |
| 159 | }; | 159 | }; |
| 160 | 160 | ||
| 161 | static const struct alps_protocol_info alps_v8_protocol_data = { | 161 | static const struct alps_protocol_info alps_v8_protocol_data = { |
| @@ -583,7 +583,7 @@ static void alps_process_trackstick_packet_v3(struct psmouse *psmouse) | |||
| 583 | 583 | ||
| 584 | x = (s8)(((packet[0] & 0x20) << 2) | (packet[1] & 0x7f)); | 584 | x = (s8)(((packet[0] & 0x20) << 2) | (packet[1] & 0x7f)); |
| 585 | y = (s8)(((packet[0] & 0x10) << 3) | (packet[2] & 0x7f)); | 585 | y = (s8)(((packet[0] & 0x10) << 3) | (packet[2] & 0x7f)); |
| 586 | z = (packet[4] & 0x7c) >> 2; | 586 | z = packet[4] & 0x7c; |
| 587 | 587 | ||
| 588 | /* | 588 | /* |
| 589 | * The x and y values tend to be quite large, and when used | 589 | * The x and y values tend to be quite large, and when used |
| @@ -595,6 +595,7 @@ static void alps_process_trackstick_packet_v3(struct psmouse *psmouse) | |||
| 595 | 595 | ||
| 596 | input_report_rel(dev, REL_X, x); | 596 | input_report_rel(dev, REL_X, x); |
| 597 | input_report_rel(dev, REL_Y, -y); | 597 | input_report_rel(dev, REL_Y, -y); |
| 598 | input_report_abs(dev, ABS_PRESSURE, z); | ||
| 598 | 599 | ||
| 599 | /* | 600 | /* |
| 600 | * Most ALPS models report the trackstick buttons in the touchpad | 601 | * Most ALPS models report the trackstick buttons in the touchpad |
| @@ -1107,6 +1108,7 @@ static void alps_process_trackstick_packet_v7(struct psmouse *psmouse) | |||
| 1107 | 1108 | ||
| 1108 | input_report_rel(dev2, REL_X, (char)x); | 1109 | input_report_rel(dev2, REL_X, (char)x); |
| 1109 | input_report_rel(dev2, REL_Y, -((char)y)); | 1110 | input_report_rel(dev2, REL_Y, -((char)y)); |
| 1111 | input_report_abs(dev2, ABS_PRESSURE, z); | ||
| 1110 | 1112 | ||
| 1111 | psmouse_report_standard_buttons(dev2, packet[1]); | 1113 | psmouse_report_standard_buttons(dev2, packet[1]); |
| 1112 | 1114 | ||
