diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2017-03-07 12:43:35 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2017-03-07 12:49:30 -0500 |
commit | a3cbfd56ff909393e2d59236d94205ae17dfc5d5 (patch) | |
tree | 34c2a08d294ae87c11f0567c6e13caad38c694f1 /drivers | |
parent | c9815232c3cca58bb2b664f37b681841981ed4a9 (diff) |
Input: alps - cleanup alps_model_data
Sort all devices in alps_model_data by signature and remove
command_mode_resp which is not used anymore.
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/mouse/alps.c | 56 | ||||
-rw-r--r-- | drivers/input/mouse/alps.h | 5 |
2 files changed, 25 insertions, 36 deletions
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index c893af6a33b0..e761955978c6 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c | |||
@@ -106,38 +106,36 @@ static const struct alps_nibble_commands alps_v6_nibble_commands[] = { | |||
106 | #define ALPS_DUALPOINT_WITH_PRESSURE 0x400 /* device can report trackpoint pressure */ | 106 | #define ALPS_DUALPOINT_WITH_PRESSURE 0x400 /* device can report trackpoint pressure */ |
107 | 107 | ||
108 | static const struct alps_model_info alps_model_data[] = { | 108 | static const struct alps_model_info alps_model_data[] = { |
109 | { { 0x32, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, /* Toshiba Salellite Pro M10 */ | ||
110 | { { 0x33, 0x02, 0x0a }, 0x00, { ALPS_PROTO_V1, 0x88, 0xf8, 0 } }, /* UMAX-530T */ | ||
111 | { { 0x53, 0x02, 0x0a }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
112 | { { 0x53, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
113 | { { 0x60, 0x03, 0xc8 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, /* HP ze1115 */ | ||
114 | { { 0x63, 0x02, 0x0a }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
115 | { { 0x63, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
116 | { { 0x63, 0x02, 0x28 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Fujitsu Siemens S6010 */ | ||
117 | { { 0x63, 0x02, 0x3c }, 0x00, { ALPS_PROTO_V2, 0x8f, 0x8f, ALPS_WHEEL } }, /* Toshiba Satellite S2400-103 */ | ||
118 | { { 0x63, 0x02, 0x50 }, 0x00, { ALPS_PROTO_V2, 0xef, 0xef, ALPS_FW_BK_1 } }, /* NEC Versa L320 */ | ||
119 | { { 0x63, 0x02, 0x64 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
120 | { { 0x63, 0x03, 0xc8 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, /* Dell Latitude D800 */ | ||
121 | { { 0x73, 0x00, 0x0a }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_DUALPOINT } }, /* ThinkPad R61 8918-5QG */ | ||
122 | { { 0x73, 0x02, 0x0a }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
123 | { { 0x73, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Ahtec Laptop */ | ||
124 | |||
125 | /* | 109 | /* |
126 | * XXX This entry is suspicious. First byte has zero lower nibble, | 110 | * XXX This entry is suspicious. First byte has zero lower nibble, |
127 | * which is what a normal mouse would report. Also, the value 0x0e | 111 | * which is what a normal mouse would report. Also, the value 0x0e |
128 | * isn't valid per PS/2 spec. | 112 | * isn't valid per PS/2 spec. |
129 | */ | 113 | */ |
130 | { { 0x20, 0x02, 0x0e }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, | 114 | { { 0x20, 0x02, 0x0e }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, |
131 | 115 | ||
132 | { { 0x22, 0x02, 0x0a }, 0x00, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, | 116 | { { 0x22, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, |
133 | { { 0x22, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT } }, /* Dell Latitude D600 */ | 117 | { { 0x22, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xff, 0xff, ALPS_PASS | ALPS_DUALPOINT } }, /* Dell Latitude D600 */ |
134 | /* Dell Latitude E5500, E6400, E6500, Precision M4400 */ | 118 | { { 0x32, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, /* Toshiba Salellite Pro M10 */ |
135 | { { 0x62, 0x02, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xcf, 0xcf, | 119 | { { 0x33, 0x02, 0x0a }, { ALPS_PROTO_V1, 0x88, 0xf8, 0 } }, /* UMAX-530T */ |
136 | ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED } }, | 120 | { { 0x52, 0x01, 0x14 }, { ALPS_PROTO_V2, 0xff, 0xff, |
137 | { { 0x73, 0x00, 0x14 }, 0x00, { ALPS_PROTO_V6, 0xff, 0xff, ALPS_DUALPOINT } }, /* Dell XT2 */ | ||
138 | { { 0x73, 0x02, 0x50 }, 0x00, { ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS } }, /* Dell Vostro 1400 */ | ||
139 | { { 0x52, 0x01, 0x14 }, 0x00, { ALPS_PROTO_V2, 0xff, 0xff, | ||
140 | ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED } }, /* Toshiba Tecra A11-11L */ | 121 | ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED } }, /* Toshiba Tecra A11-11L */ |
122 | { { 0x53, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
123 | { { 0x53, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
124 | { { 0x60, 0x03, 0xc8 }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, /* HP ze1115 */ | ||
125 | { { 0x62, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xcf, 0xcf, | ||
126 | ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED } }, /* Dell Latitude E5500, E6400, E6500, Precision M4400 */ | ||
127 | { { 0x63, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
128 | { { 0x63, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
129 | { { 0x63, 0x02, 0x28 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Fujitsu Siemens S6010 */ | ||
130 | { { 0x63, 0x02, 0x3c }, { ALPS_PROTO_V2, 0x8f, 0x8f, ALPS_WHEEL } }, /* Toshiba Satellite S2400-103 */ | ||
131 | { { 0x63, 0x02, 0x50 }, { ALPS_PROTO_V2, 0xef, 0xef, ALPS_FW_BK_1 } }, /* NEC Versa L320 */ | ||
132 | { { 0x63, 0x02, 0x64 }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
133 | { { 0x63, 0x03, 0xc8 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_PASS | ALPS_DUALPOINT } }, /* Dell Latitude D800 */ | ||
134 | { { 0x73, 0x00, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_DUALPOINT } }, /* ThinkPad R61 8918-5QG */ | ||
135 | { { 0x73, 0x00, 0x14 }, { ALPS_PROTO_V6, 0xff, 0xff, ALPS_DUALPOINT } }, /* Dell XT2 */ | ||
136 | { { 0x73, 0x02, 0x0a }, { ALPS_PROTO_V2, 0xf8, 0xf8, 0 } }, | ||
137 | { { 0x73, 0x02, 0x14 }, { ALPS_PROTO_V2, 0xf8, 0xf8, ALPS_FW_BK_2 } }, /* Ahtec Laptop */ | ||
138 | { { 0x73, 0x02, 0x50 }, { ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS } }, /* Dell Vostro 1400 */ | ||
141 | }; | 139 | }; |
142 | 140 | ||
143 | static const struct alps_protocol_info alps_v3_protocol_data = { | 141 | static const struct alps_protocol_info alps_v3_protocol_data = { |
@@ -2779,12 +2777,8 @@ static const struct alps_protocol_info *alps_match_table(unsigned char *e7, | |||
2779 | for (i = 0; i < ARRAY_SIZE(alps_model_data); i++) { | 2777 | for (i = 0; i < ARRAY_SIZE(alps_model_data); i++) { |
2780 | model = &alps_model_data[i]; | 2778 | model = &alps_model_data[i]; |
2781 | 2779 | ||
2782 | if (!memcmp(e7, model->signature, sizeof(model->signature)) && | 2780 | if (!memcmp(e7, model->signature, sizeof(model->signature))) |
2783 | (!model->command_mode_resp || | ||
2784 | model->command_mode_resp == ec[2])) { | ||
2785 | |||
2786 | return &model->protocol_info; | 2781 | return &model->protocol_info; |
2787 | } | ||
2788 | } | 2782 | } |
2789 | 2783 | ||
2790 | return NULL; | 2784 | return NULL; |
diff --git a/drivers/input/mouse/alps.h b/drivers/input/mouse/alps.h index 54f9f4401a77..dea31638c91f 100644 --- a/drivers/input/mouse/alps.h +++ b/drivers/input/mouse/alps.h | |||
@@ -163,10 +163,6 @@ struct alps_protocol_info { | |||
163 | /** | 163 | /** |
164 | * struct alps_model_info - touchpad ID table | 164 | * struct alps_model_info - touchpad ID table |
165 | * @signature: E7 response string to match. | 165 | * @signature: E7 response string to match. |
166 | * @command_mode_resp: For V3/V4 touchpads, the final byte of the EC response | ||
167 | * (aka command mode response) identifies the firmware minor version. This | ||
168 | * can be used to distinguish different hardware models which are not | ||
169 | * uniquely identifiable through their E7 responses. | ||
170 | * @protocol_info: information about protocol used by the device. | 166 | * @protocol_info: information about protocol used by the device. |
171 | * | 167 | * |
172 | * Many (but not all) ALPS touchpads can be identified by looking at the | 168 | * Many (but not all) ALPS touchpads can be identified by looking at the |
@@ -175,7 +171,6 @@ struct alps_protocol_info { | |||
175 | */ | 171 | */ |
176 | struct alps_model_info { | 172 | struct alps_model_info { |
177 | u8 signature[3]; | 173 | u8 signature[3]; |
178 | u8 command_mode_resp; | ||
179 | struct alps_protocol_info protocol_info; | 174 | struct alps_protocol_info protocol_info; |
180 | }; | 175 | }; |
181 | 176 | ||