114 lines
3.7 KiB
C

// SPDX-License-Identifier: GPL-2.0-or-later
#ifndef CTS_TEST_H
#define CTS_TEST_H
struct cts_device;
#define CTS_TEST_FLAG_RESET_BEFORE_TEST (1u << 0)
#define CTS_TEST_FLAG_RESET_AFTER_TEST (1u << 1)
#define CTS_TEST_FLAG_DISPLAY_ON (1u << 2)
#define CTS_TEST_FLAG_DISABLE_GAS (1u << 3)
#define CTS_TEST_FLAG_DISABLE_LINESHIFT (1u << 4)
#define CTS_TEST_FLAG_VALIDATE_DATA (1u << 8)
#define CTS_TEST_FLAG_VALIDATE_PER_NODE (1u << 9)
#define CTS_TEST_FLAG_VALIDATE_MIN (1u << 10)
#define CTS_TEST_FLAG_VALIDATE_MAX (1u << 11)
#define CTS_TEST_FLAG_VALIDATE_SKIP_INVALID_NODE (1u << 12)
#define CTS_TEST_FLAG_STOP_TEST_IF_VALIDATE_FAILED (1u << 13)
#define CTS_TEST_FLAG_DUMP_TEST_DATA_TO_CONSOLE (1u << 16)
#define CTS_TEST_FLAG_DUMP_TEST_DATA_TO_USERSPACE (1u << 17)
#define CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE (1u << 18)
#define CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE_APPEND (1u << 19)
#define CTS_TEST_FLAG_DUMP_TEST_DATA_TO_FILE_CSV (1u << 20)
#define CTS_TEST_FLAG_DRIVER_LOG_TO_USERSPACE (1u << 24)
#define CTS_TEST_FLAG_DRIVER_LOG_TO_FILE (1u << 25)
#define CTS_TEST_FLAG_DRIVER_LOG_TO_FILE_APPEND (1u << 26)
#define MAKE_INVALID_NODE(r, c) (((c) << 16) | (r))
#define INVALID_NODE_ROW(node) ((u16)(node))
#define INVALID_NODE_COL(node) ((u16)((node) >> 16))
enum cts_test_item {
CTS_TEST_RESET_PIN = 1,
CTS_TEST_INT_PIN,
CTS_TEST_RAWDATA,
CTS_TEST_NOISE,
CTS_TEST_OPEN,
CTS_TEST_SHORT,
CTS_TEST_COMPENSATE_CAP,
CTS_TEST_STYLUS_RAWDATA,
CTS_TEST_STYLUS_NOISE,
};
struct cts_test_param {
int test_item;
__u32 flags;
__u32 num_invalid_node;
__u32 *invalid_nodes;
int *min;
int *max;
int *test_result;
s64 *elapsed_time_ms;
void *test_data_buf;
int test_data_buf_size;
int *test_data_wr_size;
const char *test_data_filepath;
int driver_log_level;
char *driver_log_buf;
int driver_log_buf_size;
int *driver_log_wr_size;
const char *driver_log_filepath;
void *priv_param;
int priv_param_size;
};
struct cts_rawdata_test_priv_param {
__u32 frames;
//__u8 work_mode;
};
struct cts_noise_test_priv_param {
__u32 frames;
//__u8 work_mode;
};
extern const char *cts_test_item_str(int test_item);
extern int cts_write_file(struct file *filp, const void *data, size_t size);
extern int cts_mkdir_for_file(const char *filepath, umode_t mode);
extern int cts_start_dump_test_data_to_file(const char *filepath,
bool append_to_file);
extern void cts_stop_dump_test_data_to_file(void);
extern int cts_test_reset_pin(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_int_pin(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_rawdata(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_noise(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_open(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_short(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_compensate_cap(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_stylus_rawdata(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_stylus_noise(struct cts_device *cts_dev,
struct cts_test_param *param);
extern int cts_test_stylus_mnt_rawdata(struct cts_device *cts_dev,
struct cts_test_param *param);
#endif /* CTS_TEST_H */