From 11edf4f33c7a151ea9e4d5cbd21565792430ceba Mon Sep 17 00:00:00 2001 From: Mao Li Date: Thu, 24 Mar 2016 14:20:21 +0800 Subject: [PATCH] input: synaptics_dsx_2.6: fix CTP power issue for QRD8953 Synaptics touch controller does not go to sleep in suspend because L6 is still enabled. Disable L6 in suspend to ensure CTP go into sleep mode. Change-Id: I40f3f380c1a85c292029d4e22e49bebf25bd198c Signed-off-by: Mao Li --- .../touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c b/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c index 6e078002d087..96b05075e9d6 100644 --- a/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c +++ b/drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c @@ -4514,6 +4514,10 @@ exit: } mutex_unlock(&exp_data.mutex); + if (!rmi4_data->suspend) { + synaptics_rmi4_enable_reg(rmi4_data, false); + synaptics_rmi4_get_reg(rmi4_data, false); + } rmi4_data->suspend = true; return 0; @@ -4540,6 +4544,11 @@ static int synaptics_rmi4_resume(struct device *dev) rmi4_data->current_page = MASK_8BIT; + if (rmi4_data->suspend) { + synaptics_rmi4_get_reg(rmi4_data, true); + synaptics_rmi4_enable_reg(rmi4_data, true); + } + synaptics_rmi4_sleep_enable(rmi4_data, false); synaptics_rmi4_irq_enable(rmi4_data, true, false);