lin
2025-02-25 be8e643514303f34f842d8cc918a01bf4a668141
fix(tp): fixed Kernel stuck when close screen without gt9xx

Signed-off-by: lin <lin@kickpi.com>
1 files modified
32 ■■■■■ changed files
longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c 32 ●●●●● patch | view | raw | blame | history
longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c
....@@ -1087,17 +1087,19 @@
10871087 static int goodix_ts_resume(struct device *dev);
10881088 extern void gt9xx_resume_extern(void);
10891089 extern void gt9xx_suspend_extern(void);
1090
-struct goodix_ts_data *cur_ts;
1090
+struct goodix_ts_data *cur_ts= NULL;
10911091
10921092 void gt9xx_suspend_extern(void)
10931093 {
10941094 // goodix_ts_suspend(config_info.dev);
1095
-
1096
- gtp_irq_disable(cur_ts);
1097
- cancel_work_sync(&goodix_resume_work);
1098
- flush_workqueue(goodix_resume_wq);
1099
- cancel_work_sync(&cur_ts->work);
1100
- flush_workqueue(goodix_wq);
1095
+ if (cur_ts == NULL) {return;}
1096
+ else {
1097
+ gtp_irq_disable(cur_ts);
1098
+ cancel_work_sync(&goodix_resume_work);
1099
+ flush_workqueue(goodix_resume_wq);
1100
+ cancel_work_sync(&cur_ts->work);
1101
+ flush_workqueue(goodix_wq);
1102
+ }
11011103
11021104 }
11031105 EXPORT_SYMBOL(gt9xx_suspend_extern);
....@@ -1105,13 +1107,15 @@
11051107 void gt9xx_resume_extern(void)
11061108 {
11071109 // goodix_ts_resume(config_info.dev);
1108
- printk("%s goodix_ts_resume v1\n", goodix_ts_name);
1109
- __gpio_set_value(config_info.wakeup_gpio.gpio, 1);
1110
- input_set_power_enable(&(config_info.input_type), 1);
1111
- msleep(10);
1112
- // goodix_resume_events
1113
- queue_work(goodix_resume_wq, &goodix_resume_work);//gandy
1114
-
1110
+ if (cur_ts == NULL) {return;}
1111
+ else {
1112
+ printk("%s goodix_ts_resume v1\n", goodix_ts_name);
1113
+ __gpio_set_value(config_info.wakeup_gpio.gpio, 1);
1114
+ input_set_power_enable(&(config_info.input_type), 1);
1115
+ msleep(10);
1116
+ // goodix_resume_events
1117
+ queue_work(goodix_resume_wq, &goodix_resume_work);//gandy
1118
+ }
11151119 }
11161120 EXPORT_SYMBOL(gt9xx_resume_extern);
11171121