diff options
author | Duson Lin <dusonlin@emc.com.tw> | 2015-09-03 12:46:45 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2015-09-03 13:00:16 -0400 |
commit | 58f1eae48e5372200553de07b5ecc7574803ee91 (patch) | |
tree | 78f3e9dd4eb025663cf7ec777aa17cec7dff6e08 | |
parent | d6f5aef298b5e5bd12e5d3ef111a4d0fc727ca70 (diff) |
Input: elan_i2c - use iap_version to get firmware information
When driver is in IAP mode ic_type query may return 0xff. However
iap_version will always be valid, so let's use it to determine parameters
of the firmware that the controller is supposed to accept.
Signed-off-by: Duson Lin <dusonlin@emc.com.tw>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r-- | drivers/input/mouse/elan_i2c_core.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/input/mouse/elan_i2c_core.c b/drivers/input/mouse/elan_i2c_core.c index d4a38caa1ab1..e2b7420eed97 100644 --- a/drivers/input/mouse/elan_i2c_core.c +++ b/drivers/input/mouse/elan_i2c_core.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Copyright (c) 2013 ELAN Microelectronics Corp. | 4 | * Copyright (c) 2013 ELAN Microelectronics Corp. |
5 | * | 5 | * |
6 | * Author: 林政維 (Duson Lin) <dusonlin@emc.com.tw> | 6 | * Author: 林政維 (Duson Lin) <dusonlin@emc.com.tw> |
7 | * Version: 1.5.9 | 7 | * Version: 1.6.0 |
8 | * | 8 | * |
9 | * Based on cyapa driver: | 9 | * Based on cyapa driver: |
10 | * copyright (c) 2011-2012 Cypress Semiconductor, Inc. | 10 | * copyright (c) 2011-2012 Cypress Semiconductor, Inc. |
@@ -40,7 +40,7 @@ | |||
40 | #include "elan_i2c.h" | 40 | #include "elan_i2c.h" |
41 | 41 | ||
42 | #define DRIVER_NAME "elan_i2c" | 42 | #define DRIVER_NAME "elan_i2c" |
43 | #define ELAN_DRIVER_VERSION "1.5.9" | 43 | #define ELAN_DRIVER_VERSION "1.6.0" |
44 | #define ETP_MAX_PRESSURE 255 | 44 | #define ETP_MAX_PRESSURE 255 |
45 | #define ETP_FWIDTH_REDUCE 90 | 45 | #define ETP_FWIDTH_REDUCE 90 |
46 | #define ETP_FINGER_WIDTH 15 | 46 | #define ETP_FINGER_WIDTH 15 |
@@ -94,10 +94,10 @@ struct elan_tp_data { | |||
94 | bool baseline_ready; | 94 | bool baseline_ready; |
95 | }; | 95 | }; |
96 | 96 | ||
97 | static int elan_get_fwinfo(u8 ic_type, u16 *validpage_count, | 97 | static int elan_get_fwinfo(u8 iap_version, u16 *validpage_count, |
98 | u16 *signature_address) | 98 | u16 *signature_address) |
99 | { | 99 | { |
100 | switch(ic_type) { | 100 | switch (iap_version) { |
101 | case 0x08: | 101 | case 0x08: |
102 | *validpage_count = 512; | 102 | *validpage_count = 512; |
103 | break; | 103 | break; |
@@ -264,11 +264,11 @@ static int elan_query_device_info(struct elan_tp_data *data) | |||
264 | if (error) | 264 | if (error) |
265 | return error; | 265 | return error; |
266 | 266 | ||
267 | error = elan_get_fwinfo(data->ic_type, &data->fw_validpage_count, | 267 | error = elan_get_fwinfo(data->iap_version, &data->fw_validpage_count, |
268 | &data->fw_signature_address); | 268 | &data->fw_signature_address); |
269 | if (error) { | 269 | if (error) { |
270 | dev_err(&data->client->dev, | 270 | dev_err(&data->client->dev, |
271 | "unknown ic type %d\n", data->ic_type); | 271 | "unknown iap version %d\n", data->iap_version); |
272 | return error; | 272 | return error; |
273 | } | 273 | } |
274 | 274 | ||