From be8e643514303f34f842d8cc918a01bf4a668141 Mon Sep 17 00:00:00 2001
From: lin <lin@kickpi.com>
Date: Tue, 25 Feb 2025 03:25:57 +0000
Subject: [PATCH] fix(tp): fixed Kernel stuck when close screen without gt9xx

---
 longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c |   32 ++++++++++++++++++--------------
 1 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c b/longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c
index 27d2068..19196a0 100755
--- a/longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c
+++ b/longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xx/gt9xx.c
@@ -1087,17 +1087,19 @@
 static int goodix_ts_resume(struct device *dev);
 extern void gt9xx_resume_extern(void);
 extern void gt9xx_suspend_extern(void);
-struct goodix_ts_data *cur_ts;
+struct goodix_ts_data *cur_ts= NULL;
 
 void gt9xx_suspend_extern(void)
 {
 	// goodix_ts_suspend(config_info.dev);
-	
-	gtp_irq_disable(cur_ts);
-	cancel_work_sync(&goodix_resume_work);
-	flush_workqueue(goodix_resume_wq);
-	cancel_work_sync(&cur_ts->work);
-	flush_workqueue(goodix_wq);
+	if (cur_ts == NULL) {return;}
+	else {
+		gtp_irq_disable(cur_ts);
+		cancel_work_sync(&goodix_resume_work);
+		flush_workqueue(goodix_resume_wq);
+		cancel_work_sync(&cur_ts->work);
+		flush_workqueue(goodix_wq);
+	}
 
 }
 EXPORT_SYMBOL(gt9xx_suspend_extern);
@@ -1105,13 +1107,15 @@
 void gt9xx_resume_extern(void)
 {
 	// goodix_ts_resume(config_info.dev);
-	printk("%s goodix_ts_resume v1\n", goodix_ts_name);
-	__gpio_set_value(config_info.wakeup_gpio.gpio, 1);
-	input_set_power_enable(&(config_info.input_type), 1);
-	msleep(10);
-	// goodix_resume_events
-	queue_work(goodix_resume_wq, &goodix_resume_work);//gandy
-
+	if (cur_ts == NULL) {return;}
+	else {
+		printk("%s goodix_ts_resume v1\n", goodix_ts_name);
+		__gpio_set_value(config_info.wakeup_gpio.gpio, 1);
+		input_set_power_enable(&(config_info.input_type), 1);
+		msleep(10);
+		// goodix_resume_events
+		queue_work(goodix_resume_wq, &goodix_resume_work);//gandy
+	}
 }
 EXPORT_SYMBOL(gt9xx_resume_extern);
 

--
Gitblit v1.6.2