From 658222e621cdb5d8b3bfa56b75287cd42750cbb2 Mon Sep 17 00:00:00 2001 From: litong Date: Thu, 7 May 2020 18:27:40 +0800 Subject: [PATCH] Syna: Modify the ratio of the major and minor values Modify the ratio of the major and minor values for FOD For racer: ratio = 1948/ 128 Change-Id: I09db7e5adf7998fc468b4258d76d6846f0eb908e Reviewed-on: https://gerrit.mot.com/1549735 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Jialei Hao Reviewed-by: Jianqi Yang Submit-Approved: Jira Key --- .../touchscreen/synaptics_tcm_mmi_v2/synaptics_i2c.c | 3 +++ .../touchscreen/synaptics_tcm_mmi_v2/synaptics_touch.c | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_i2c.c b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_i2c.c index 5be61d7e8c51..01e7b6ce2f82 100644 --- a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_i2c.c +++ b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_i2c.c @@ -185,6 +185,9 @@ static int parse_dt(struct device *dev, struct syna_tcm_board_data *bdata) bdata->tpio_reset_gpio = -1; } + /* If multiple_factor not set in device_tree. Set as default value. + * report major and minor value = raw value * size_to_pixel_multiple_factor / 128 + */ prop = of_find_property(np, "synaptics,size_to_pixel_multiple_factor", NULL); if (prop && prop->length) { retval = of_property_read_u32(np, "synaptics,size_to_pixel_multiple_factor", diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_touch.c b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_touch.c index 5dc7c660777a..dce6a146e51f 100644 --- a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_touch.c +++ b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_touch.c @@ -771,11 +771,11 @@ static void touch_report(void) x = object_data[idx].x_pos; y = object_data[idx].y_pos; if (object_data[idx].x_width > object_data[idx].y_width) { - minor = object_data[idx].y_width * bdata->size_to_pixel_multiple_factor; - major = object_data[idx].x_width * bdata->size_to_pixel_multiple_factor; + minor = (object_data[idx].y_width * bdata->size_to_pixel_multiple_factor) >> 7; + major = (object_data[idx].x_width * bdata->size_to_pixel_multiple_factor) >> 7; } else { - minor = object_data[idx].x_width * bdata->size_to_pixel_multiple_factor; - major = object_data[idx].y_width * bdata->size_to_pixel_multiple_factor; + minor = (object_data[idx].x_width * bdata->size_to_pixel_multiple_factor) >> 7; + major = (object_data[idx].y_width * bdata->size_to_pixel_multiple_factor) >> 7; } if (bdata->swap_axes) { temp = x;