From 69d8ad4ae9d660abe45d80e844d66d806d869d66 Mon Sep 17 00:00:00 2001 From: dengwei1 Date: Fri, 23 Oct 2020 15:51:03 +0800 Subject: [PATCH] guamp: input touch fix esd lock issue touch ilitek fix esd lock issue NO_PROP_NEEDED Change-Id: Ic18b6839078f8a0efe2ad830f7ef8569ea9b8da6 Signed-off-by: dengwei1 Reviewed-on: https://gerrit.mot.com/1783255 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Wang Wang Submit-Approved: Jira Key --- drivers/input/touchscreen/ili9882_mmi/ili9882.c | 6 +++++- drivers/input/touchscreen/ili9882_mmi/ili9882_spi.c | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/input/touchscreen/ili9882_mmi/ili9882.c b/drivers/input/touchscreen/ili9882_mmi/ili9882.c index 6926803619bf..63111ba5f2ff 100755 --- a/drivers/input/touchscreen/ili9882_mmi/ili9882.c +++ b/drivers/input/touchscreen/ili9882_mmi/ili9882.c @@ -233,6 +233,10 @@ int ili_wq_esd_i2c_check(void) static void ilitek_tddi_wq_esd_check(struct work_struct *work) { + if (mutex_is_locked(&ilits->touch_mutex)) { + ILI_INFO("touch is locked, ignore\n"); + return; + } mutex_lock(&ilits->touch_mutex); if (!ilits->tp_suspend && ilits->esd_recover() < 0) { ILI_ERR("SPI ACK failed, doing spi recovery\n"); @@ -1045,7 +1049,7 @@ int ili_tddi_init(void) spin_lock_init(&ilits->irq_spin); init_completion(&ilits->esd_done); - atomic_set(&ilits->irq_stat, DISABLE); + //atomic_set(&ilits->irq_stat, DISABLE); atomic_set(&ilits->ice_stat, DISABLE); atomic_set(&ilits->tp_reset, END); atomic_set(&ilits->fw_stat, END); diff --git a/drivers/input/touchscreen/ili9882_mmi/ili9882_spi.c b/drivers/input/touchscreen/ili9882_mmi/ili9882_spi.c index 395b2fc3a2dd..1f2641ec29b2 100755 --- a/drivers/input/touchscreen/ili9882_mmi/ili9882_spi.c +++ b/drivers/input/touchscreen/ili9882_mmi/ili9882_spi.c @@ -259,9 +259,9 @@ static int ili_spi_pll_clk_wakeup(void) wdata[1] = wlen >> 8; wdata[2] = wlen & 0xff; index = 3; - wlen += index; ipio_memcpy(&wdata[index], wakeup, wlen, wlen); + wlen += index; ILI_INFO("Write dummy to wake up spi pll clk\n"); if (ilits->spi_write_then_read(ilits->spi, wdata, wlen, NULL, 0) < 0) {