summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2022-10-11 06:41:40 +0000
committerWendly Li <wendlyli@google.com>2022-10-11 06:50:43 +0000
commitbce2c2785dd25b80227cf2b0f819b95d7d9ab104 (patch)
treeba6ce22e3545aa639204ff9e6096fa5e88724191
parent47d1adf5d83b07c2d44aa493095f9a8897ab73d6 (diff)
downloadgoodix_touch-bce2c2785dd25b80227cf2b0f819b95d7d9ab104.tar.gz
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 <wendlyli@google.com>
-rw-r--r--goodix_ts_core.c15
-rw-r--r--goodix_ts_core.h2
-rw-r--r--goodix_ts_proc.c4
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);