diff options
author | Nick Dyer <nick.dyer@itdev.co.uk> | 2012-08-01 16:57:38 +0100 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2013-09-14 12:37:46 -0700 |
commit | fadf8df2c6a299915824a936007cf17b3ae9f993 (patch) | |
tree | a589286e54d533bc831d6cbbee890152f9e49a12 /drivers/input/touchscreen/atmel_mxt_ts.c | |
parent | ef7ac80655b90eca2e086c5b3a5b5ce1ac0a9d6d (diff) |
Input: atmel_mxt_ts - Output status from T42 Touch Suppression
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
Rebase-Id: Rf4e8d4082bf2516a8596246256c8b8f420439571
Diffstat (limited to 'drivers/input/touchscreen/atmel_mxt_ts.c')
-rw-r--r-- | drivers/input/touchscreen/atmel_mxt_ts.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 20f03b18d75c..18274f0b0e8d 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -186,6 +186,9 @@ #define MXT_RESET_VALUE 0x01 #define MXT_BACKUP_VALUE 0x55 +/* Define for MXT_PROCG_NOISESUPPRESSION_T42 */ +#define MXT_T42_MSG_TCHSUP (1 << 0) + /* Delay times */ #define MXT_BACKUP_TIME 25 /* msec */ #define MXT_RESET_TIME 200 /* msec */ @@ -296,6 +299,8 @@ struct mxt_data { u8 T6_reportid; u8 T9_reportid_min; u8 T9_reportid_max; + u8 T42_reportid_min; + u8 T42_reportid_max; u16 T44_address; u8 T48_reportid; }; @@ -726,6 +731,17 @@ static void mxt_proc_t9_messages(struct mxt_data *data, u8 *message) } } +static void mxt_proc_t42_messages(struct mxt_data *data, u8 *msg) +{ + struct device *dev = &data->client->dev; + u8 status = msg[1]; + + if (status & MXT_T42_MSG_TCHSUP) + dev_info(dev, "T42 suppress\n"); + else + dev_info(dev, "T42 normal\n"); +} + static int mxt_proc_t48_messages(struct mxt_data *data, u8 *msg) { struct device *dev = &data->client->dev; @@ -764,6 +780,9 @@ static int mxt_proc_message(struct mxt_data *data, u8 *msg) mxt_proc_t6_messages(data, msg); } else if (report_id == data->T48_reportid) { mxt_proc_t48_messages(data, msg); + } else if (report_id >= data->T42_reportid_min + && report_id <= data->T42_reportid_max) { + mxt_proc_t42_messages(data, msg); } return 0; @@ -1311,6 +1330,10 @@ static int mxt_get_object_table(struct mxt_data *data) data->T5_msg_size = object->size - 1; data->T5_address = object->start_address; break; + case MXT_PROCI_TOUCHSUPPRESSION_T42: + data->T42_reportid_max = object->max_reportid; + data->T42_reportid_min = object->min_reportid; + break; case MXT_SPT_MESSAGECOUNT_T44: data->T44_address = object->start_address; break; |