input: touchscreen: nova_0flash_mmi: Start firmware update immediately

Allows touch to immediately be available in recovery.

Change-Id: I426dc7a42bc6c2692d8a0aa039648178c1d35c51
Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
AnierinB 2025-08-17 23:35:11 +00:00 • committed by Michael Bestas
commit 1de2e5d505
No known key found for this signature in database
2 changed files with 7 additions and 8 deletions

View file

@ -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);

View file

@ -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;