himax_mmi: fix rmmod cause crash issue

1. Disable and free irq when rmmod.
2. Remove proc dir after all entries removed.

Change-Id: Ie06eac3537ca703acbb52393d4d9ce63ae1bd9d3
Signed-off-by: haojl2 <haojl2@motorola.com>
Reviewed-on: https://gerrit.mot.com/1252558
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Wei Deng <dengwei1@motorola.com>
Reviewed-by: Jianqi Yang <yangj@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
haojl2 2018-10-09 15:37:06 +08:00 • committed by Jialei Hao
commit 0b2b44e095
2 changed files with 5 additions and 1 deletions

View file

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

View file

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