From 917c246a1a6fab53041e5d5bb756e5b564871415 Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Wed, 8 Sep 2021 14:46:17 +0100 Subject: [PATCH 0302/1085] 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(+) --- a/drivers/input/touchscreen/edt-ft5x06.c +++ b/drivers/input/touchscreen/edt-ft5x06.c @@ -1420,6 +1420,10 @@ static void edt_ft5x06_ts_remove(struct { 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); regmap_exit(tsdata->regmap); }