From 1ae7a213d8728bba95c797919cae0daf7f168f04 Mon Sep 17 00:00:00 2001 From: davidycchen Date: Fri, 24 Sep 2021 10:31:19 +0800 Subject: 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 Change-Id: I4ae81d52dd1ef1f5b0b90cb331eab0965c7397db --- syna_tcm2.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'syna_tcm2.h') diff --git a/syna_tcm2.h b/syna_tcm2.h index 55fba69..d8b6bc4 100644 --- a/syna_tcm2.h +++ b/syna_tcm2.h @@ -255,6 +255,15 @@ enum power_state { LOW_PWR, }; +/** + * @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 * @@ -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_ */ -- cgit v1.2.3