summaryrefslogtreecommitdiff
path: root/syna_tcm2.h
diff options
context:
space:
mode:
authordavidycchen <davidycchen@google.com>2021-09-24 10:31:19 +0800
committerdavidycchen <davidycchen@google.com>2021-10-05 17:22:39 +0800
commit1ae7a213d8728bba95c797919cae0daf7f168f04 (patch)
tree19ec362af3639e5a9f845aefce8df60d8144ae65 /syna_tcm2.h
parent8dbeaa2288f4b3dcf8ed4a28a56eab5aed82dfa6 (diff)
downloadsynaptics_touch-1ae7a213d8728bba95c797919cae0daf7f168f04.tar.gz
synaptics: support bus reference bit masking
Use bus reference bit masking to make sure both touch and kernel are awake when the hardware interface is transferring. Bug: 199104450. Signed-off-by: davidycchen <davidycchen@google.com> Change-Id: I4ae81d52dd1ef1f5b0b90cb331eab0965c7397db
Diffstat (limited to 'syna_tcm2.h')
-rw-r--r--syna_tcm2.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/syna_tcm2.h b/syna_tcm2.h
index 55fba69..d8b6bc4 100644
--- a/syna_tcm2.h
+++ b/syna_tcm2.h
@@ -256,6 +256,15 @@ enum power_state {
};
/**
+ * @brief: Bits masking for bus reference.
+ */
+enum {
+ SYNA_BUS_REF_SCREEN_ON = 0x0001,
+ SYNA_BUS_REF_IRQ = 0x0002,
+ SYNA_BUS_REF_FW_UPDATE = 0x0004,
+};
+
+/**
* @brief: context of the synaptics linux-based driver
*
* The structure defines the kernel specific data in linux-based driver
@@ -307,6 +316,14 @@ struct syna_tcm {
struct delayed_work reflash_work;
struct workqueue_struct *reflash_workqueue;
+ struct work_struct suspend_work;
+ struct work_struct resume_work;
+ struct workqueue_struct *event_wq;
+ struct completion bus_resumed;
+
+ u32 bus_refmask;
+ struct mutex bus_mutex;
+
/* IOCTL-related variables */
pid_t proc_pid;
struct task_struct *proc_task;
@@ -417,6 +434,7 @@ void syna_cdev_update_report_queue(struct syna_tcm *tcm,
#endif
#endif
+int syna_set_bus_ref(struct syna_tcm *tcm, u32 ref, bool enable);
#endif /* end of _SYNAPTICS_TCM2_DRIVER_H_ */