lin
2025-03-21 36aaa54056c4f4e150f6ee0636610d9a68470a08
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
....@@ -1579,11 +1583,11 @@
15791583 return ret;
15801584 }
15811585 #else
1582
- //ret = of_property_read_u32(np, "ctp_screen_max_x", &screen_max_x);
1583
- //of_property_read_u32(np, "ctp_screen_max_y", &screen_max_y);
1584
- //of_property_read_u32(np, "ctp_revert_x_flag", &revert_x_flag);
1585
- //of_property_read_u32(np, "ctp_revert_y_flag", &revert_y_flag);
1586
- //of_property_read_u32(np, "ctp_exchange_x_y_flag", &exchange_x_y_flag);
1586
+ ret = of_property_read_u32(np, "ctp_screen_max_x", &screen_max_x);
1587
+ of_property_read_u32(np, "ctp_screen_max_y", &screen_max_y);
1588
+ of_property_read_u32(np, "ctp_revert_x_flag", &revert_x_flag);
1589
+ of_property_read_u32(np, "ctp_revert_y_flag", &revert_y_flag);
1590
+ of_property_read_u32(np, "ctp_exchange_x_y_flag", &exchange_x_y_flag);
15871591 #endif
15881592 sunxi_gpio_to_name(CTP_IRQ_NUMBER,irq_pin_name);
15891593 pr_err("gt %s, line:%d irq_pin_name = %s \n",__FUNCTION__, __LINE__, irq_pin_name);