On Tue, Aug 27, 2019 at 03:27:19PM +0900, Jiada Wang wrote: > From: Karl Tsou <karl.funlab@xxxxxxxxx> This description is a little brief. > > Signed-off-by: Nick Dyer <nick.dyer@xxxxxxxxxxx> > (cherry picked from ndyer/linux/for-upstream commit cb98986f8342107bf4a536aed4160b20839e97c1) > Signed-off-by: George G. Davis <george_davis@xxxxxxxxxx> > Signed-off-by: Jiada Wang <jiada_wang@xxxxxxxxxx> > --- > drivers/input/touchscreen/atmel_mxt_ts.c | 40 ++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > > diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c > index 4e237209cb34..26861252c088 100644 > --- a/drivers/input/touchscreen/atmel_mxt_ts.c > +++ b/drivers/input/touchscreen/atmel_mxt_ts.c > @@ -71,6 +71,8 @@ > #define MXT_SPT_MESSAGECOUNT_T44 44 > #define MXT_SPT_CTECONFIG_T46 46 > #define MXT_SPT_DYNAMICCONFIGURATIONCONTAINER_T71 71 > +#define MXT_PROCI_SYMBOLGESTUREPROCESSOR 92 > +#define MXT_PROCI_TOUCHSEQUENCELOGGER 93 > #define MXT_TOUCH_MULTITOUCHSCREEN_T100 100 > #define MXT_PROCI_ACTIVESTYLUS_T107 107 > > @@ -349,6 +351,10 @@ struct mxt_data { > u8 T42_reportid_max; > u16 T44_address; > u8 T48_reportid; > + u16 T92_address; > + u8 T92_reportid; > + u16 T93_address; > + u8 T93_reportid; > u8 T100_reportid_min; > u8 T100_reportid_max; > u16 T107_address; > @@ -1113,6 +1119,24 @@ static int mxt_proc_t48_messages(struct mxt_data *data, u8 *msg) > return 0; > } > > +static void mxt_proc_t92_messages(struct mxt_data *data, u8 *msg) > +{ > + struct device *dev = &data->client->dev; > + u8 status = msg[1]; > + > + dev_info(dev, "T92 long stroke LSTR=%d %d\n", > + (status & 0x80) ? 1 : 0, > + status & 0x0F); Shouldn't this be dev_dbg(). > +} > + > +static void mxt_proc_t93_messages(struct mxt_data *data, u8 *msg) > +{ > + struct device *dev = &data->client->dev; > + u8 status = msg[1]; > + > + dev_info(dev, "T93 report double tap %d\n", status); Ditto. Daniel. > +} > + > static int mxt_proc_message(struct mxt_data *data, u8 *message) > { > u8 report_id = message[0]; > @@ -1145,6 +1169,10 @@ static int mxt_proc_message(struct mxt_data *data, u8 *message) > } else if (report_id >= data->T15_reportid_min > && report_id <= data->T15_reportid_max) { > mxt_proc_t15_messages(data, message); > + } else if (report_id == data->T92_reportid) { > + mxt_proc_t92_messages(data, message); > + } else if (report_id == data->T93_reportid) { > + mxt_proc_t93_messages(data, message); > } else { > mxt_dump_message(data, message); > } > @@ -1814,6 +1842,10 @@ static void mxt_free_object_table(struct mxt_data *data) > data->T42_reportid_max = 0; > data->T44_address = 0; > data->T48_reportid = 0; > + data->T92_reportid = 0; > + data->T92_address = 0; > + data->T93_reportid = 0; > + data->T93_address = 0; > data->T100_reportid_min = 0; > data->T100_reportid_max = 0; > data->max_reportid = 0; > @@ -1906,6 +1938,14 @@ static int mxt_parse_object_table(struct mxt_data *data, > case MXT_PROCG_NOISESUPPRESSION_T48: > data->T48_reportid = min_id; > break; > + case MXT_PROCI_SYMBOLGESTUREPROCESSOR: > + data->T92_reportid = min_id; > + data->T92_address = object->start_address; > + break; > + case MXT_PROCI_TOUCHSEQUENCELOGGER: > + data->T93_reportid = min_id; > + data->T93_address = object->start_address; > + break; > case MXT_TOUCH_MULTITOUCHSCREEN_T100: > data->multitouch = MXT_TOUCH_MULTITOUCHSCREEN_T100; > data->T100_reportid_min = min_id; > -- > 2.19.2 >