diff options
| author | Matjaz Hegedic <matjaz.hegedic@gmail.com> | 2017-03-10 17:33:09 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-30 03:41:22 -0400 |
| commit | 3c9da7cfb7cf8528fb226348bc2da4b4bb274e39 (patch) | |
| tree | 10b029ba1085c2ebd3ef3678812733d713b55a73 /drivers/input/mouse | |
| parent | 4ccef6bd3a0212f0172428afe7ad4aa3b3601dbf (diff) | |
Input: elan_i2c - add ASUS EeeBook X205TA special touchpad fw
commit 92ef6f97a66e580189a41a132d0f8a9f78d6ddce upstream.
EeeBook X205TA is yet another ASUS device with a special touchpad
firmware that needs to be accounted for during initialization, or
else the touchpad will go into an invalid state upon suspend/resume.
Adding the appropriate ic_type and product_id check fixes the problem.
Signed-off-by: Matjaz Hegedic <matjaz.hegedic@gmail.com>
Acked-by: KT Liao <kt.liao@emc.com.tw>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/input/mouse')
| -rw-r--r-- | drivers/input/mouse/elan_i2c_core.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index ed1935f300a7..da5458dfb1e3 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c | |||
| @@ -218,17 +218,19 @@ static int elan_query_product(struct elan_tp_data *data) | |||
| 218 | 218 | ||
| 219 | static int elan_check_ASUS_special_fw(struct elan_tp_data *data) | 219 | static int elan_check_ASUS_special_fw(struct elan_tp_data *data) |
| 220 | { | 220 | { |
| 221 | if (data->ic_type != 0x0E) | 221 | if (data->ic_type == 0x0E) { |
| 222 | return false; | 222 | switch (data->product_id) { |
| 223 | 223 | case 0x05 ... 0x07: | |
| 224 | switch (data->product_id) { | 224 | case 0x09: |
| 225 | case 0x05 ... 0x07: | 225 | case 0x13: |
| 226 | case 0x09: | 226 | return true; |
| 227 | case 0x13: | 227 | } |
| 228 | } else if (data->ic_type == 0x08 && data->product_id == 0x26) { | ||
| 229 | /* ASUS EeeBook X205TA */ | ||
| 228 | return true; | 230 | return true; |
| 229 | default: | ||
| 230 | return false; | ||
| 231 | } | 231 | } |
| 232 | |||
| 233 | return false; | ||
| 232 | } | 234 | } |
| 233 | 235 | ||
| 234 | static int __elan_initialize(struct elan_tp_data *data) | 236 | static int __elan_initialize(struct elan_tp_data *data) |
