diff --git a/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.c b/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.c index 818ac7d2c341..ed68d1a2f4f0 100644 --- a/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.c +++ b/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.c @@ -77,6 +77,10 @@ static DEVICE_ATTR(timestamp, S_IRUGO, goodix_ts_timestamp_show, NULL); #define DEFAULT_MODE 0 #define MAX_ATTRS_ENTRIES 10 +#define NORMAL_DEFAULT_MODE 10 +#define NORMAL_SMALL_MODE 11 +#define NORMAL_BIG_MODE 12 + #define ADD_ATTR(name) { \ if (idx < MAX_ATTRS_ENTRIES) { \ dev_info(dev, "%s: [%d] adding %p\n", __func__, idx, &dev_attr_##name.attr); \ @@ -592,13 +596,26 @@ static ssize_t goodix_ts_edge_store(struct device *dev, if (ret < 2) return -EINVAL; - if (DEFAULT_MODE == args[0]) { + switch (args[0]) { + case DEFAULT_MODE: edge_cmd[1] = DEFAULT_EDGE; - } else if (SMALL_MODE == args[0]) { + break; + case SMALL_MODE: edge_cmd[1] = SMALL_EDGE; - } else if (BIG_MODE == args[0]) { + break; + case BIG_MODE: edge_cmd[1] = BIG_EDGE; - } else { + break; + case NORMAL_DEFAULT_MODE: + edge_cmd[1] = NORMAL_DEFAULT_EDGE; + break; + case NORMAL_SMALL_MODE: + edge_cmd[1] = NORMAL_SMALL_EDGE; + break; + case NORMAL_BIG_MODE: + edge_cmd[1] = NORMAL_BIG_EDGE; + break; + default: ts_err("Invalid edge mode: %d!\n", args[0]); return -EINVAL; } diff --git a/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.h b/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.h index 40cbd9506855..25274c333625 100644 --- a/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.h +++ b/drivers/input/touchscreen/goodix_berlin_mmi/goodix_ts_mmi.h @@ -45,6 +45,10 @@ static int inline goodix_ts_mmi_dev_unregister(struct platform_device *ts_device #define SMALL_EDGE 0x40 #define BIG_EDGE 0x80 +#define NORMAL_DEFAULT_EDGE 0x08 +#define NORMAL_SMALL_EDGE 0x48 +#define NORMAL_BIG_EDGE 0x88 + #define STYLUS_MODE_SWITCH_CMD 0xA4 #define EXIT_HIGH_REPORT_RATE_CMD 0xC100