summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2019-11-21 14:50:33 +0800
committerDavid Chen <davidycchen@google.com>2019-12-13 16:25:38 +0000
commita7d9e7b79f77864a93921b56c5ca0bbf329e6ca7 (patch)
tree954bfe5d3c4fe723fa10dbaa811d95610774ebf1
parent7383848e71b9d9390f35895f88f948df53eb1acf (diff)
downloadfts_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.c28
-rw-r--r--fts.h14
2 files changed, 22 insertions, 20 deletions
diff --git a/fts.c b/fts.c
index 0a7aadc..6399b46 100644
--- a/fts.c
+++ b/fts.c
@@ -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
diff --git a/fts.h b/fts.h
index 1942df6..80f2426 100644
--- a/fts.h
+++ b/fts.h
@@ -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 */