mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 04:12:04 -04:00
fogor: tp: 1st icnl9916c CQA-test function
1. modify self-test function. 2. modify 1st tp depend on mmi_info.ko 3. modify 2nd tp depend on mmi_info.ko Change-Id: Iba103e204af8ec98c3d7e97936330014d13bc8d2 Signed-off-by: ontim52 <ontim52@motorola.com> Reviewed-on: https://gerrit.mot.com/2658984 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Jun Weng <wengjun1@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
1a41085023
commit
c94a4cc151
8 changed files with 73 additions and 41 deletions
|
|
@ -22,7 +22,7 @@ ifneq ($(MOTO_PANEL_CHECK_TOUCH_STATE),)
|
|||
KERNEL_CFLAGS += CONFIG_INPUT_CHIPONE_0FLASH_MMI_NOTIFY_TOUCH_STATE=y
|
||||
endif
|
||||
|
||||
ifneq ($(findstring touchscreen_mmi.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
|
||||
ifneq ($(findstring mmi_info.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
|
||||
KBUILD_OPTIONS += CONFIG_INPUT_TOUCHSCREEN_MMI=y
|
||||
endif
|
||||
|
||||
|
|
|
|||
|
|
@ -428,7 +428,6 @@ static void do_selftest(struct cts_oem_data *oem_data)
|
|||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_VALIDATE_MAX |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_USERSPACE;
|
||||
test_param.min = &oem_data->rawdata_min;
|
||||
test_param.max = &oem_data->rawdata_max;
|
||||
|
|
@ -458,7 +457,6 @@ static void do_selftest(struct cts_oem_data *oem_data)
|
|||
CTS_TEST_FLAG_VALIDATE_DATA |
|
||||
CTS_TEST_FLAG_VALIDATE_MAX |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_USERSPACE;
|
||||
test_param.max = &oem_data->noise_max;
|
||||
test_param.test_data_buf = oem_data->noise_test_data;
|
||||
|
|
@ -485,7 +483,6 @@ static void do_selftest(struct cts_oem_data *oem_data)
|
|||
CTS_TEST_FLAG_VALIDATE_DATA |
|
||||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_USERSPACE;
|
||||
test_param.min = &oem_data->open_min;
|
||||
test_param.test_data_buf = oem_data->open_test_data;
|
||||
|
|
@ -508,7 +505,6 @@ static void do_selftest(struct cts_oem_data *oem_data)
|
|||
CTS_TEST_FLAG_VALIDATE_DATA |
|
||||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_USERSPACE;
|
||||
test_param.min = &oem_data->short_min;
|
||||
test_param.test_data_buf = oem_data->short_test_data;
|
||||
|
|
@ -532,7 +528,6 @@ static void do_selftest(struct cts_oem_data *oem_data)
|
|||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_VALIDATE_MAX |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_USERSPACE;
|
||||
test_param.min = &oem_data->comp_cap_min;
|
||||
test_param.max = &oem_data->comp_cap_max;
|
||||
|
|
@ -1243,7 +1238,7 @@ static const struct proc_ops cts_limit_ops = {
|
|||
|
||||
static int cts_factory_test_show(struct seq_file *m, void *v)
|
||||
{
|
||||
#define TOUCH_DATA_DIRECTORY_PREFIX "/sdcard/chipone-tddi/test"
|
||||
#define TOUCH_DATA_DIRECTORY_PREFIX "/sdcard"
|
||||
#define RAWDATA_TEST_DATA_FILENAME "rawdata-test-data.txt"
|
||||
#define NOISE_TEST_DATA_FILENAME "noise-test-data.txt"
|
||||
#define OPEN_TEST_DATA_FILENAME "open-test-data.txt"
|
||||
|
|
@ -1275,7 +1270,6 @@ static int cts_factory_test_show(struct seq_file *m, void *v)
|
|||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_VALIDATE_MAX |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE,
|
||||
.test_data_filepath = NULL,
|
||||
.num_invalid_node = 0,
|
||||
|
|
@ -1294,7 +1288,6 @@ static int cts_factory_test_show(struct seq_file *m, void *v)
|
|||
.flags = CTS_TEST_FLAG_VALIDATE_DATA |
|
||||
CTS_TEST_FLAG_VALIDATE_MAX |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE,
|
||||
.test_data_filepath = NULL,
|
||||
.num_invalid_node = 0,
|
||||
|
|
@ -1309,7 +1302,6 @@ static int cts_factory_test_show(struct seq_file *m, void *v)
|
|||
.flags = CTS_TEST_FLAG_VALIDATE_DATA |
|
||||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE,
|
||||
.test_data_filepath = NULL,
|
||||
.num_invalid_node = 0,
|
||||
|
|
@ -1322,7 +1314,6 @@ static int cts_factory_test_show(struct seq_file *m, void *v)
|
|||
.flags = CTS_TEST_FLAG_VALIDATE_DATA |
|
||||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE,
|
||||
.test_data_filepath = NULL,
|
||||
.num_invalid_node = 0,
|
||||
|
|
@ -1336,7 +1327,6 @@ static int cts_factory_test_show(struct seq_file *m, void *v)
|
|||
CTS_TEST_FLAG_VALIDATE_MIN |
|
||||
CTS_TEST_FLAG_VALIDATE_MAX |
|
||||
CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE |
|
||||
CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE,
|
||||
.test_data_filepath = NULL,
|
||||
.num_invalid_node = 0,
|
||||
|
|
|
|||
|
|
@ -951,7 +951,6 @@ int cts_tcs_polling_data(struct cts_device *cts_dev,
|
|||
break;
|
||||
mdelay(10);
|
||||
} while (!ready && --retries);
|
||||
cts_info("get data rdy, retries left %d", retries);
|
||||
|
||||
if (!ready) {
|
||||
cts_err("time out wait for data rdy");
|
||||
|
|
@ -1217,6 +1216,20 @@ int cts_tcs_set_workmode(const struct cts_device *cts_dev, u8 workmode)
|
|||
&workmode, sizeof(workmode));
|
||||
}
|
||||
|
||||
int cts_tcs_get_curr_mode(const struct cts_device *cts_dev, u8 *currmode)
|
||||
{
|
||||
u8 buf = 0;
|
||||
int ret;
|
||||
|
||||
ret = cts_tcs_read(cts_dev, CMD_SYS_STS_CURRENT_WORKMODE_RO,
|
||||
&buf, sizeof(buf));
|
||||
if (ret == 0) {
|
||||
*currmode = buf;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int cts_tcs_set_openshort_mode(const struct cts_device *cts_dev, u8 mode)
|
||||
{
|
||||
return cts_tcs_write(cts_dev, CMD_OPENSHORT_MODE_SEL_RW, &mode,
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ int cts_tcs_get_fw_id(const struct cts_device *cts_dev, u16 *fwid);
|
|||
int cts_tcs_get_workmode(const struct cts_device *cts_dev, u8 *workmode);
|
||||
int cts_tcs_set_workmode(const struct cts_device *cts_dev, u8 workmode);
|
||||
int cts_tcs_set_openshort_mode(const struct cts_device *cts_dev, u8 mode);
|
||||
int cts_tcs_get_curr_mode(const struct cts_device *cts_dev, u8 *currmode);
|
||||
int cts_tcs_set_tx_vol(const struct cts_device *cts_dev, u8 txvol);
|
||||
|
||||
int cts_tcs_set_short_test_type(const struct cts_device *cts_dev, u8 short_type);
|
||||
|
|
|
|||
|
|
@ -637,6 +637,32 @@ static int wait_fw_to_normal_work(struct cts_device *cts_dev)
|
|||
return ret ? ret : -ETIMEDOUT;
|
||||
}
|
||||
|
||||
static int wait_fw_to_curr_mode(struct cts_device *cts_dev)
|
||||
{
|
||||
int i = 0;
|
||||
int ret;
|
||||
|
||||
cts_info("Wait fw to curr work mode");
|
||||
|
||||
do {
|
||||
u8 work_mode;
|
||||
|
||||
ret = cts_tcs_get_curr_mode(cts_dev, &work_mode);
|
||||
if (ret) {
|
||||
cts_err("Get fw curr work mode failed %d", work_mode);
|
||||
continue;
|
||||
} else {
|
||||
if (work_mode == CTS_FIRMWARE_WORK_MODE_OPEN_SHORT)
|
||||
return 0;
|
||||
}
|
||||
|
||||
mdelay(10);
|
||||
} while (++i < 100);
|
||||
|
||||
return ret ? ret : -ETIMEDOUT;
|
||||
}
|
||||
|
||||
|
||||
static int prepare_test(struct cts_device *cts_dev)
|
||||
{
|
||||
int ret;
|
||||
|
|
@ -1388,6 +1414,12 @@ int cts_test_open(struct cts_device *cts_dev, struct cts_test_param *param)
|
|||
goto err_recovery_display_state;
|
||||
}
|
||||
|
||||
ret = wait_fw_to_curr_mode(cts_dev);
|
||||
if (ret) {
|
||||
cts_err("wait_to_curr_mode failed %d", ret);
|
||||
goto err_recovery_display_state;
|
||||
}
|
||||
|
||||
cts_set_int_data_types(cts_dev, INT_DATA_TYPE_RAWDATA);
|
||||
cts_set_int_data_method(cts_dev, INT_DATA_METHOD_POLLING);
|
||||
|
||||
|
|
@ -1584,7 +1616,7 @@ int cts_test_short(struct cts_device *cts_dev, struct cts_test_param *param)
|
|||
}
|
||||
|
||||
cts_info("Test short to GND");
|
||||
ret = cts_tcs_set_short_test_type(cts_dev, CTS_SHORT_TEST_BETWEEN_GND);
|
||||
ret = cts_tcs_set_short_test_type(cts_dev, CTS_SHORT_TEST_UNDEFINED);
|
||||
if (ret) {
|
||||
cts_err("Set short test type to SHORT_TO_GND failed %d", ret);
|
||||
goto recovery_display_state;
|
||||
|
|
@ -1600,8 +1632,21 @@ int cts_test_short(struct cts_device *cts_dev, struct cts_test_param *param)
|
|||
goto recovery_display_state;
|
||||
}
|
||||
|
||||
ret = wait_fw_to_curr_mode(cts_dev);
|
||||
if (ret) {
|
||||
cts_err("wait_to_curr_mode failed %d", ret);
|
||||
goto recovery_display_state;
|
||||
}
|
||||
|
||||
cts_set_int_data_types(cts_dev, INT_DATA_TYPE_RAWDATA);
|
||||
cts_set_int_data_method(cts_dev, INT_DATA_METHOD_POLLING);
|
||||
|
||||
ret = cts_tcs_set_short_test_type(cts_dev, CTS_SHORT_TEST_BETWEEN_GND);
|
||||
if (ret) {
|
||||
cts_err("Set short test type to SHORT_TO_GND failed %d", ret);
|
||||
goto recovery_display_state;
|
||||
}
|
||||
|
||||
ret = cts_tcs_polling_test_data(cts_dev, (u8 *)test_result,
|
||||
RAWDATA_BUFFER_SIZE(cts_dev));
|
||||
if (ret) {
|
||||
|
|
@ -1643,16 +1688,6 @@ int cts_test_short(struct cts_device *cts_dev, struct cts_test_param *param)
|
|||
cts_err("Set short test type to BETWEEN_COLS failed %d", ret);
|
||||
goto recovery_display_state;
|
||||
}
|
||||
// ret = cts_tcs_set_openshort_mode(cts_dev, CTS_TEST_SHORT);
|
||||
// if (ret) {
|
||||
// cts_err("Set test type to SHORT failed %d", ret);
|
||||
// goto recovery_display_state;
|
||||
// }
|
||||
// ret = cts_tcs_set_workmode(cts_dev, CTS_FIRMWARE_WORK_MODE_OPEN_SHORT);
|
||||
// if (ret) {
|
||||
// cts_err("Set firmware work mode to WORK_MODE_TEST failed %d", ret);
|
||||
// goto recovery_display_state;
|
||||
// }
|
||||
|
||||
for (loopcnt = 0; loopcnt < SHORT_COLS_TEST_LOOP; loopcnt++) {
|
||||
ret = cts_tcs_polling_test_data(cts_dev, (u8 *)test_result,
|
||||
|
|
@ -1688,22 +1723,13 @@ int cts_test_short(struct cts_device *cts_dev, struct cts_test_param *param)
|
|||
|
||||
/* Short between rows */
|
||||
cts_info("Test short between rows");
|
||||
ret = cts_tcs_set_short_test_type(cts_dev, CTS_SHORT_TEST_BETWEEN_ROWS);
|
||||
if (ret) {
|
||||
cts_err("Set short test type to BETWEEN_ROWS failed %d", ret);
|
||||
goto recovery_display_state;
|
||||
}
|
||||
|
||||
for (loopcnt = 0; loopcnt < SHORT_ROWS_TEST_LOOP; loopcnt++) {
|
||||
ret = cts_tcs_set_short_test_type(cts_dev, CTS_SHORT_TEST_BETWEEN_ROWS);
|
||||
if (ret) {
|
||||
cts_err("Set short test type to BETWEEN_ROWS failed %d", ret);
|
||||
goto recovery_display_state;
|
||||
}
|
||||
// ret = cts_tcs_set_openshort_mode(cts_dev, CTS_TEST_SHORT);
|
||||
// if (ret) {
|
||||
// cts_err("Set test type to SHORT failed %d", ret);
|
||||
// goto recovery_display_state;
|
||||
// }
|
||||
// ret = cts_tcs_set_workmode(cts_dev, CTS_FIRMWARE_WORK_MODE_OPEN_SHORT);
|
||||
// if (ret) {
|
||||
// cts_err("Set firmware work mode to WORK_MODE_TEST failed %d", ret);
|
||||
// goto recovery_display_state;
|
||||
// }
|
||||
ret = cts_tcs_polling_test_data(cts_dev, (u8 *)test_result,
|
||||
RAWDATA_BUFFER_SIZE(cts_dev));
|
||||
if (ret) {
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ enum cts_test_item {
|
|||
CTS_TEST_COMPENSATE_CAP,
|
||||
};
|
||||
|
||||
#pragma pack(1)
|
||||
struct cts_test_param {
|
||||
int test_item;
|
||||
|
||||
|
|
@ -67,6 +68,7 @@ struct cts_test_param {
|
|||
void *priv_param;
|
||||
int priv_param_size;
|
||||
};
|
||||
#pragma pack()
|
||||
|
||||
struct cts_rawdata_test_priv_param {
|
||||
__u32 frames;
|
||||
|
|
|
|||
|
|
@ -1195,7 +1195,7 @@ int cts_tool_init(struct chipone_ts_data *cts_data)
|
|||
cts_info("Init");
|
||||
|
||||
cts_data->procfs_entry = proc_create_data(CFG_CTS_TOOL_PROC_FILENAME,
|
||||
0660, NULL, &cts_tool_fops, cts_data);
|
||||
0666, NULL, &cts_tool_fops, cts_data);
|
||||
if (cts_data->procfs_entry == NULL) {
|
||||
cts_err("Create proc entry failed");
|
||||
return -EFAULT;
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ ifeq ($(TOUCHSCREEN_LAST_TIME),true)
|
|||
KERNEL_CFLAGS += CONFIG_ILI_TOUCH_LAST_TIME=y
|
||||
endif
|
||||
|
||||
ifneq ($(findstring touchscreen_mmi.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
|
||||
ifneq ($(findstring mmi_info.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
|
||||
KBUILD_OPTIONS += CONFIG_INPUT_TOUCHSCREEN_MMI=y
|
||||
endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue