diff --git a/raydium/raydium_driver.c b/raydium/raydium_driver.c index 4d4efb514b..3e54ad432b 100644 --- a/raydium/raydium_driver.c +++ b/raydium/raydium_driver.c @@ -1403,15 +1403,18 @@ static void raydium_ts_do_suspend(void) input_sync(g_raydium_ts->input_dev); #ifdef GESTURE_EN - if (device_may_wakeup(&g_raydium_ts->client->dev)) { - LOGD(LOG_INFO, "[touch]Device may wakeup\n"); - if (!enable_irq_wake(g_raydium_ts->irq)) - g_raydium_ts->irq_wake = true; + if (pm_suspend_via_firmware() == false) + { + if (device_may_wakeup(&g_raydium_ts->client->dev)) { + LOGD(LOG_INFO, "[touch]Device may wakeup\n"); + if (!enable_irq_wake(g_raydium_ts->irq)) + g_raydium_ts->irq_wake = true; - } else { - LOGD(LOG_INFO, "[touch]Device not wakeup\n"); + } else { + LOGD(LOG_INFO, "[touch]Device not wakeup\n"); + } + raydium_irq_control(ENABLE); } - raydium_irq_control(ENABLE); #endif g_raydium_ts->is_suspend = 1;