From bce2c2785dd25b80227cf2b0f819b95d7d9ab104 Mon Sep 17 00:00:00 2001 From: Wendly Li Date: Tue, 11 Oct 2022 06:41:40 +0000 Subject: touch/goodix: Use different test limits for different panel Bug: 250922105 Test: echo auto_test > /proc/goodix_ts/driver_test Change-Id: I9dcdef8e689a7c7d0de83bdab9240046ba8fedcf Signed-off-by: Wendly Li --- goodix_ts_core.c | 15 +++++++++++++++ goodix_ts_core.h | 2 ++ goodix_ts_proc.c | 4 +--- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/goodix_ts_core.c b/goodix_ts_core.c index fa0bfec..fe27cd6 100644 --- a/goodix_ts_core.c +++ b/goodix_ts_core.c @@ -1372,6 +1372,16 @@ static int goodix_parse_dt( ts_info("Config name %s", board_data->cfg_bin_name); + r = of_property_read_string_index(node, + "goodix,test_limits_names", panelmap.args[0], &name); + if (r < 0) + name = TS_DEFAULT_TEST_LIMITS; + + strncpy(board_data->test_limits_name, name, + sizeof(board_data->test_limits_name)); + ts_info("test limits name %s", + board_data->test_limits_name); + break; } } @@ -1403,6 +1413,11 @@ static int goodix_parse_dt( strncpy(board_data->cfg_bin_name, TS_DEFAULT_CFG_BIN, sizeof(board_data->cfg_bin_name)); } + + /* use default test limits name */ + ts_info("use default test limits: %s", TS_DEFAULT_TEST_LIMITS); + strncpy(board_data->test_limits_name, TS_DEFAULT_TEST_LIMITS, + sizeof(board_data->test_limits_name)); } /* get xyz resolutions */ diff --git a/goodix_ts_core.h b/goodix_ts_core.h index e755aa2..1c6e823 100644 --- a/goodix_ts_core.h +++ b/goodix_ts_core.h @@ -76,6 +76,7 @@ #define TS_DEFAULT_FIRMWARE "goodix_firmware.bin" #define TS_DEFAULT_CFG_BIN "goodix_cfg_group.bin" +#define TS_DEFAULT_TEST_LIMITS "goodix_test_limits_255.csv" enum GOODIX_GESTURE_TYP { GESTURE_SINGLE_TAP = (1 << 0), @@ -347,6 +348,7 @@ struct goodix_ts_board_data { bool sleep_enable; char fw_name[GOODIX_MAX_STR_LABEL_LEN]; char cfg_bin_name[GOODIX_MAX_STR_LABEL_LEN]; + char test_limits_name[GOODIX_MAX_STR_LABEL_LEN]; }; enum goodix_fw_update_mode { diff --git a/goodix_ts_proc.c b/goodix_ts_proc.c index 66f0f8c..ea1e967 100644 --- a/goodix_ts_proc.c +++ b/goodix_ts_proc.c @@ -1727,15 +1727,13 @@ static int goodix_obtain_testlimits(void) struct device *dev = &cd->pdev->dev; int tx = cd->ic_info.parm.drv_num; int rx = cd->ic_info.parm.sen_num; - char limit_file[100] = { 0 }; + char *limit_file = cd->board_data.test_limits_name; char *temp_buf = NULL; char *raw_limit_min = CSV_TP_SPECIAL_RAW_MIN; char *raw_limit_max = CSV_TP_SPECIAL_RAW_MAX; s16 data_buf[7]; int ret; - sprintf(limit_file, "goodix_test_limits_%d.csv", - cd->fw_version.sensor_id); ts_info("limit_file_name:%s", limit_file); ret = request_firmware(&firmware, limit_file, dev); -- cgit v1.2.3