From 1de2e5d5059571ec344ea908b44d32aea1c75628 Mon Sep 17 00:00:00 2001 From: AnierinB Date: Sun, 17 Aug 2025 23:35:11 +0000 Subject: [PATCH] input: touchscreen: nova_0flash_mmi: Start firmware update immediately Allows touch to immediately be available in recovery. Change-Id: I426dc7a42bc6c2692d8a0aa039648178c1d35c51 Signed-off-by: AnierinB --- drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c | 13 ++++++------- drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.h | 2 +- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c index 2dc13d7e9ef1..21914c54cd73 100644 --- a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c +++ b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.c @@ -3283,10 +3283,9 @@ static int32_t nvt_ts_probe(struct spi_device *client) ret = -ENOMEM; goto err_create_nvt_fwu_wq_failed; } - INIT_DELAYED_WORK(&ts->nvt_fwu_work, Boot_Update_Firmware); + INIT_WORK(&ts->nvt_fwu_work, Boot_Update_Firmware); #ifndef CONFIG_INPUT_TOUCHSCREEN_MMI - // please make sure boot update start after display reset(RESX) sequence - queue_delayed_work(nvt_fwu_wq, &ts->nvt_fwu_work, msecs_to_jiffies(7000)); + queue_work(nvt_fwu_wq, &ts->nvt_fwu_work); #endif #endif #ifdef LCM_FAST_LIGHTUP @@ -3485,7 +3484,7 @@ err_create_nvt_esd_check_wq_failed: #endif #if BOOT_UPDATE_FIRMWARE if (nvt_fwu_wq) { - cancel_delayed_work_sync(&ts->nvt_fwu_work); + cancel_work_sync(&ts->nvt_fwu_work); destroy_workqueue(nvt_fwu_wq); nvt_fwu_wq = NULL; } @@ -3635,7 +3634,7 @@ static int32_t nvt_ts_remove(struct spi_device *client) #if BOOT_UPDATE_FIRMWARE if (nvt_fwu_wq) { - cancel_delayed_work_sync(&ts->nvt_fwu_work); + cancel_work_sync(&ts->nvt_fwu_work); destroy_workqueue(nvt_fwu_wq); nvt_fwu_wq = NULL; } @@ -3736,7 +3735,7 @@ static void nvt_ts_shutdown(struct spi_device *client) #if BOOT_UPDATE_FIRMWARE if (nvt_fwu_wq) { - cancel_delayed_work_sync(&ts->nvt_fwu_work); + cancel_work_sync(&ts->nvt_fwu_work); destroy_workqueue(nvt_fwu_wq); nvt_fwu_wq = NULL; } @@ -3902,7 +3901,7 @@ int32_t nvt_ts_resume(struct device *dev) #if NVT_TOUCH_SUPPORT_HW_RST gpio_set_value(ts->reset_gpio, 1); #endif - queue_delayed_work(nvt_fwu_wq, &ts->nvt_fwu_work, msecs_to_jiffies(0)); + queue_work(nvt_fwu_wq, &ts->nvt_fwu_work); #if !WAKEUP_GESTURE nvt_irq_enable(true); diff --git a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.h b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.h index 5bde499d54aa..d2ca3b3da4cf 100644 --- a/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.h +++ b/drivers/input/touchscreen/nova_0flash_mmi/nt36xxx.h @@ -188,7 +188,7 @@ struct usb_charger_detection { struct nvt_ts_data { struct spi_device *client; struct input_dev *input_dev; - struct delayed_work nvt_fwu_work; + struct work_struct nvt_fwu_work; uint16_t addr; int8_t phys[32]; uint8_t bTouchIsAwake;