diff --git a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c index 134d0cde301a..667291acd7f3 100644 --- a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c +++ b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c @@ -2363,11 +2363,7 @@ static int32_t nvt_ts_resume(struct device *dev) #if NVT_TOUCH_SUPPORT_HW_RST gpio_set_value(ts->reset_gpio, 1); #endif - if (nvt_update_firmware(BOOT_UPDATE_FIRMWARE_NAME)) { - NVT_ERR("download firmware failed, ignore check fw state\n"); - } else { - nvt_check_fw_reset_state(RESET_STATE_REK); - } + queue_delayed_work(nvt_fwu_wq, &ts->nvt_fwu_work, msecs_to_jiffies(0)); #if !WAKEUP_GESTURE nvt_irq_enable(true); diff --git a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx_fw_update.c b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx_fw_update.c index b5b6dfe2d533..6025341dadd8 100644 --- a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx_fw_update.c +++ b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx_fw_update.c @@ -1003,7 +1003,12 @@ return: void Boot_Update_Firmware(struct work_struct *work) { mutex_lock(&ts->lock); - nvt_update_firmware(BOOT_UPDATE_FIRMWARE_NAME); + if (nvt_update_firmware(BOOT_UPDATE_FIRMWARE_NAME)) { + NVT_ERR("download firmware failed, ignore check fw state\n"); + } else { + nvt_check_fw_reset_state(RESET_STATE_REK); + } + mutex_unlock(&ts->lock); } #endif /* BOOT_UPDATE_FIRMWARE */