> On Thu, 27 Aug 2020 at 19:20, Johnny Chuang > <johnny.chuang.emc@xxxxxxxxx> wrote: > > > > This patch adds a new behavior to report touch major resolution based > > on information provided by firmware. > > > > In initial process, driver acquires touch information from touch ic. > > It contains one byte about the resolution value of ABS_MT_TOUCH_MAJOR. > > Touch driver will report touch major resolution by this information. > > > > Signed-off-by: Johnny Chuang <johnny.chuang.emc@xxxxxxxxx> > > Thanks Johnny! > > Reviewed-by: Harry Cutts <hcutts@xxxxxxxxxxxx> > > Harry Cutts > Chrome OS Touch/Input team > Hi Sirs, Can you help to review this patch? > > --- > > Changes in v2: > > - register a real resolution value from firmware, > > instead of hardcoding resolution value as 1 by flag. > > Changes in v3: > > - modify git log message from flag to real value. > > - modify driver comment from flag to real value. > > --- > > drivers/input/touchscreen/elants_i2c.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/drivers/input/touchscreen/elants_i2c.c > > b/drivers/input/touchscreen/elants_i2c.c > > index b0bd5bb..661a3ee 100644 > > --- a/drivers/input/touchscreen/elants_i2c.c > > +++ b/drivers/input/touchscreen/elants_i2c.c > > @@ -151,6 +151,7 @@ struct elants_data { > > > > bool wake_irq_enabled; > > bool keep_power_in_suspend; > > + u8 report_major_resolution; > > > > /* Must be last to be used for DMA operations */ > > u8 buf[MAX_PACKET_SIZE] ____cacheline_aligned; @@ -459,6 > > +460,9 @@ static int elants_i2c_query_ts_info(struct elants_data *ts) > > rows = resp[2] + resp[6] + resp[10]; > > cols = resp[3] + resp[7] + resp[11]; > > > > + /* get report resolution value of ABS_MT_TOUCH_MAJOR */ > > + ts->report_major_resolution = resp[16]; > > + > > /* Process mm_to_pixel information */ > > error = elants_i2c_execute_command(client, > > get_osr_cmd, > > sizeof(get_osr_cmd), @@ -1325,6 +1329,8 @@ static int > elants_i2c_probe(struct i2c_client *client, > > 0, MT_TOOL_PALM, 0, 0); > > input_abs_set_res(ts->input, ABS_MT_POSITION_X, ts->x_res); > > input_abs_set_res(ts->input, ABS_MT_POSITION_Y, ts->y_res); > > + if (ts->report_major_resolution > 0) > > + input_abs_set_res(ts->input, ABS_MT_TOUCH_MAJOR, > > + ts->report_major_resolution); > > > > touchscreen_parse_properties(ts->input, true, &ts->prop); > > > > -- > > 2.7.4 > >