From eb7de4f8ef3149c20d2c552ef66df667a62b18f5 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:46:17 +0100 Subject: [PATCH 512/634] Input: edt-ft54x6: Clean up timer and workqueue on remove If no interrupt is defined then a timer and workqueue are used to poll the controller. On remove these were not being cleaned up correctly. Fixes: ca61fdaba79f "Input: edt-ft5x06: Poll the device if no interrupt is configured." Signed-off-by: Dave Stevenson --- drivers/input/touchscreen/edt-ft5x06.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/input/touchscreen/edt-ft5x06.c b/drivers/input/touchscreen/edt-ft5x06.c index 339eae4ec7a8..aabd1246b788 100644 --- a/drivers/input/touchscreen/edt-ft5x06.c +++ b/drivers/input/touchscreen/edt-ft5x06.c @@ -1301,6 +1301,10 @@ static int edt_ft5x06_ts_remove(struct i2c_client *client) { struct edt_ft5x06_ts_data *tsdata = i2c_get_clientdata(client); + if (!client->irq) { + del_timer(&tsdata->timer); + cancel_work_sync(&tsdata->work_i2c_poll); + } edt_ft5x06_ts_teardown_debugfs(tsdata); return 0; -- 2.33.1