diff options
author | davidycchen <davidycchen@google.com> | 2019-11-21 14:50:33 +0800 |
---|---|---|
committer | David Chen <davidycchen@google.com> | 2019-12-13 16:25:38 +0000 |
commit | a7d9e7b79f77864a93921b56c5ca0bbf329e6ca7 (patch) | |
tree | 954bfe5d3c4fe723fa10dbaa811d95610774ebf1 | |
parent | 7383848e71b9d9390f35895f88f948df53eb1acf (diff) | |
download | fts_touch-a7d9e7b79f77864a93921b56c5ca0bbf329e6ca7.tar.gz |
touch:fts: enable TOUCHSCREEN_HEATMAP
Enable TOUCHSCREEN_HEATMAP feature in fts touch driver.
Bug: 139783401
Change-Id: Ie41d0acf801ce7130893ea897cc091c95da0c999
Signed-off-by: davidycchen <davidycchen@google.com>
(cherry picked from commit ef04fc4ea32f2ed68e543edce6bd6f55518b2a60)
-rw-r--r-- | fts.c | 28 | ||||
-rw-r--r-- | fts.h | 14 |
2 files changed, 22 insertions, 20 deletions
@@ -1499,7 +1499,7 @@ static void touchsim_work(struct work_struct *work) struct fts_ts_info *info = container_of(touchsim, struct fts_ts_info, touchsim); -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP ktime_t timestamp = ktime_get(); #endif @@ -1518,7 +1518,7 @@ static void touchsim_work(struct work_struct *work) input_sync(info->input_dev); -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP heatmap_read(&info->v4l2, ktime_to_ns(timestamp)); #endif @@ -2658,7 +2658,7 @@ END: * 1 = FTS_HEATMAP_PARTIAL * 2 = FTS_HEATMAP_FULL */ -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP static ssize_t fts_heatmap_mode_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) @@ -2698,7 +2698,7 @@ static DEVICE_ATTR(fw_file_test, 0444, fts_fw_test_show, NULL); static DEVICE_ATTR(status, 0444, fts_status_show, NULL); static DEVICE_ATTR(stm_fts_cmd, 0664, stm_fts_cmd_show, stm_fts_cmd_store); -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP static DEVICE_ATTR(heatmap_mode, 0664, fts_heatmap_mode_show, fts_heatmap_mode_store); #endif @@ -2760,7 +2760,7 @@ static struct attribute *fts_attr_group[] = { &dev_attr_fw_file_test.attr, &dev_attr_status.attr, &dev_attr_stm_fts_cmd.attr, -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP &dev_attr_heatmap_mode.attr, #endif #ifdef USE_ONE_FILE_NODE @@ -3665,7 +3665,7 @@ static bool fts_user_report_event_handler(struct fts_ts_info *info, unsigned return false; } -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP static void heatmap_enable(void) { u8 command[] = {FTS_CMD_SYSTEM, SYS_CMD_LOAD_DATA, @@ -3929,7 +3929,7 @@ static irqreturn_t fts_interrupt_handler(int irq, void *handle) input_sync(info->input_dev); -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP if (processed_pointer_event) heatmap_read(&info->v4l2, ktime_to_ns(info->timestamp)); #endif @@ -4609,7 +4609,7 @@ static int fts_init_sensing(struct fts_ts_info *info) pr_err("%s Init after Probe error (ERROR = %08X)\n", __func__, error); -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP heatmap_enable(); #endif @@ -4853,7 +4853,7 @@ static void fts_resume_work(struct work_struct *work) info->sensor_sleep = false; -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP /* heatmap must be enabled after every chip reset (fts_system_reset) */ heatmap_enable(); #endif @@ -5315,7 +5315,7 @@ static int parse_dt(struct device *dev, struct fts_hw_platform_data *bdata) pr_info("Automatic firmware update disabled\n"); } -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP bdata->heatmap_mode_full_init = false; if (of_property_read_bool(np, "st,heatmap_mode_full")) { bdata->heatmap_mode_full_init = true; @@ -5599,7 +5599,7 @@ static int fts_probe(struct spi_device *client) /* Set initial heatmap mode based on the device tree configuration. * Default is partial heatmap mode. */ -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP if (info->board->heatmap_mode_full_init) info->heatmap_mode = FTS_HEATMAP_FULL; else @@ -5629,7 +5629,7 @@ static int fts_probe(struct spi_device *client) goto ProbeErrorExit_6; } -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP /* * Heatmap_probe must be called before irq routine is registered, * because heatmap_read is called from interrupt context. @@ -5713,7 +5713,7 @@ ProbeErrorExit_7: msm_drm_unregister_client(&info->notifier); #endif -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP heatmap_remove(&info->v4l2); #endif @@ -5779,7 +5779,7 @@ static int fts_remove(struct spi_device *client) /* remove interrupt and event handlers */ fts_interrupt_uninstall(info); -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP heatmap_remove(&info->v4l2); #endif @@ -32,8 +32,10 @@ #ifndef _LINUX_FTS_I2C_H_ #define _LINUX_FTS_I2C_H_ +#define TOUCHSCREEN_HEATMAP + #include <linux/device.h> -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP #include <linux/input/heatmap.h> #endif #include <linux/pm_qos.h> @@ -203,7 +205,7 @@ /**@}*/ /*********************************************************/ -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP /* **** LOCAL HEATMAP FEATURE *** */ #define LOCAL_HEATMAP_WIDTH 7 #define LOCAL_HEATMAP_HEIGHT 7 @@ -288,7 +290,7 @@ struct fts_hw_platform_data { int x_axis_max; int y_axis_max; bool auto_fw_update; -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP bool heatmap_mode_full_init; #endif struct drm_panel *panel; @@ -321,7 +323,7 @@ typedef enum { * (LOCAL_HEATMAP_WIDTH * LOCAL_HEATMAP_HEIGHT) * FTS_HEATMAP_FULL - read full mutual sense strength frame */ -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP enum { FTS_HEATMAP_OFF = 0, FTS_HEATMAP_PARTIAL = 1, @@ -402,7 +404,7 @@ struct fts_ts_info { struct completion bus_resumed; /* resume_work complete */ struct pm_qos_request pm_qos_req; -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP struct v4l2_heatmap v4l2; #endif struct delayed_work fwu_work; /* Work for fw update */ @@ -457,7 +459,7 @@ struct fts_ts_info { int stylus_enabled; /* Stylus mode */ int cover_enabled; /* Cover mode */ int grip_enabled; /* Grip mode */ -#ifdef CONFIG_TOUCHSCREEN_HEATMAP +#ifdef TOUCHSCREEN_HEATMAP int heatmap_mode; /* heatmap mode*/ #endif /* Stop changing motion filter and keep fw design */ |