diff --git a/drivers/input/touchscreen/himax_mmi/himax_common.c b/drivers/input/touchscreen/himax_mmi/himax_common.c index da8c28066820..96bc61a85e3e 100644 --- a/drivers/input/touchscreen/himax_mmi/himax_common.c +++ b/drivers/input/touchscreen/himax_mmi/himax_common.c @@ -2779,12 +2779,15 @@ void himax_chip_common_deinit(void) himax_debug_remove(); #endif - remove_proc_entry(HIMAX_PROC_TOUCH_FOLDER, NULL); himax_common_proc_deinit(); + remove_proc_entry(HIMAX_PROC_TOUCH_FOLDER, NULL); if (!ts->use_irq) { hrtimer_cancel(&ts->timer); destroy_workqueue(ts->himax_wq); + } else { + himax_int_enable(0); + free_irq(private_ts->client->irq, ts); } himax_sysfs_touchscreen(ts, false); diff --git a/drivers/input/touchscreen/himax_mmi/himax_debug.c b/drivers/input/touchscreen/himax_mmi/himax_debug.c index d86bf34f4b7a..c7cd300b6841 100644 --- a/drivers/input/touchscreen/himax_mmi/himax_debug.c +++ b/drivers/input/touchscreen/himax_mmi/himax_debug.c @@ -2612,6 +2612,7 @@ void himax_touch_proc_deinit(void) remove_proc_entry(HIMAX_PROC_DD_DEBUG_FILE, himax_touch_proc_dir); remove_proc_entry(HIMAX_PROC_REGISTER_FILE, himax_touch_proc_dir); remove_proc_entry(HIMAX_PROC_DIAG_FILE, himax_touch_proc_dir); + remove_proc_entry(HIMAX_PROC_DIAG_ARR_FILE, himax_touch_proc_dir); remove_proc_entry(HIMAX_PROC_RESET_FILE, himax_touch_proc_dir); remove_proc_entry(HIMAX_PROC_LAYOUT_FILE, himax_touch_proc_dir); remove_proc_entry(HIMAX_PROC_INT_EN_FILE, himax_touch_proc_dir);