diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/Android.mk b/drivers/input/touchscreen/chipone_tddi_v2_mmi/Android.mk index 53c67ef0ba99..7c68ba3eb6ca 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/Android.mk +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/Android.mk @@ -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 diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_oem.c b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_oem.c index 10b62a1f1053..f132327ac76e 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_oem.c +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_oem.c @@ -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, diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.c b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.c index 17ef81c95711..44a4a121be49 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.c +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.c @@ -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, diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.h b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.h index 59defdc0f95a..d3d88b2968b8 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.h +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tcs.h @@ -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); diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.c b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.c index 1a08d5460b48..29b30e16a9b2 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.c +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.c @@ -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) { diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.h b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.h index 0dfab00801ef..6cab0f2f7e74 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.h +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_test.h @@ -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; diff --git a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tool.c b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tool.c index 6ac6f15c0a94..ca58282ec197 100644 --- a/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tool.c +++ b/drivers/input/touchscreen/chipone_tddi_v2_mmi/cts_tool.c @@ -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; diff --git a/drivers/input/touchscreen/ilitek_v3_mmi/Android.mk b/drivers/input/touchscreen/ilitek_v3_mmi/Android.mk index 7bfa956fefd2..0a3df51069cc 100644 --- a/drivers/input/touchscreen/ilitek_v3_mmi/Android.mk +++ b/drivers/input/touchscreen/ilitek_v3_mmi/Android.mk @@ -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