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) {