[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+jURcs2tLsVihoiXLsvLzdJZ4LKv0sQTu7FAqqT6r+pCi0wsA@mail.gmail.com>
Date: Fri, 28 Aug 2020 10:42:33 -0700
From: Harry Cutts <hcutts@...omium.org>
To: Johnny Chuang <johnny.chuang.emc@...il.com>
Cc: Dmitry Torokhov <dmitry.torokhov@...il.com>,
Benjamin Tissoires <benjamin.tissoires@...hat.com>,
Peter Hutterer <peter.hutterer@...-t.net>,
lkml <linux-kernel@...r.kernel.org>,
linux-input <linux-input@...r.kernel.org>,
Johnny Chuang <johnny.chuang@....com.tw>,
James Chen <james.chen@....com.tw>,
Jennifer Tsai <jennifer.tsai@....com.tw>,
Paul Liang <paul.liang@....com.tw>,
Jeff Chuang <jeff.chuang@....com.tw>
Subject: Re: [PATCH v3] Input: elants_i2c - Report resolution of
ABS_MT_TOUCH_MAJOR by FW information.
On Thu, 27 Aug 2020 at 19:20, Johnny Chuang <johnny.chuang.emc@...il.com> 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@...il.com>
Thanks Johnny!
Reviewed-by: Harry Cutts <hcutts@...omium.org>
Harry Cutts
Chrome OS Touch/Input team
> ---
> 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
>
Powered by blists - more mailing lists