@@ -846,7 +846,7 @@ static ssize_t udfps_enabled_store(struct device *dev,
846846
847847 core_data -> udfps_enabled = buf [0 ] != '0' ;
848848
849- core_data -> gesture_enabled = core_data -> double_tap_enabled | core_data -> udfps_enabled ;
849+ core_data -> gesture_enabled = core_data -> double_tap_enabled | core_data -> udfps_enabled | core_data -> single_tap_enabled ;
850850
851851 goodix_check_gesture_stat (true);
852852
@@ -877,7 +877,7 @@ static ssize_t double_tap_enabled_store(struct device *dev,
877877
878878 core_data -> double_tap_enabled = buf [0 ] != '0' ;
879879
880- core_data -> gesture_enabled = core_data -> double_tap_enabled | core_data -> udfps_enabled ;
880+ core_data -> gesture_enabled = core_data -> double_tap_enabled | core_data -> udfps_enabled | core_data -> single_tap_enabled ;
881881
882882 goodix_check_gesture_stat (true);
883883
@@ -892,6 +892,37 @@ static ssize_t double_tap_enabled_show(struct device *dev,
892892 return scnprintf (buf , PAGE_SIZE , "%i\n" , core_data -> double_tap_enabled );
893893}
894894
895+ static ssize_t single_tap_pressed_show (struct device * dev ,
896+ struct device_attribute * attr , char * buf )
897+ {
898+ struct goodix_ts_core * core_data = dev_get_drvdata (dev );
899+
900+ return scnprintf (buf , PAGE_SIZE , "%i\n" , core_data -> single_tap_pressed );
901+ }
902+
903+ static ssize_t single_tap_enabled_store (struct device * dev ,
904+ struct device_attribute * attr , const char * buf ,
905+ size_t count )
906+ {
907+ struct goodix_ts_core * core_data = dev_get_drvdata (dev );
908+
909+ core_data -> single_tap_enabled = buf [0 ] != '0' ;
910+
911+ core_data -> gesture_enabled = core_data -> double_tap_enabled | core_data -> udfps_enabled | core_data -> single_tap_enabled ;
912+
913+ goodix_check_gesture_stat (true);
914+
915+ return count ;
916+ }
917+
918+ static ssize_t single_tap_enabled_show (struct device * dev ,
919+ struct device_attribute * attr , char * buf )
920+ {
921+ struct goodix_ts_core * core_data = dev_get_drvdata (dev );
922+
923+ return scnprintf (buf , PAGE_SIZE , "%i\n" , core_data -> single_tap_enabled );
924+ }
925+
895926static DEVICE_ATTR (extmod_info , 0444 , goodix_ts_extmod_show , NULL) ;
896927static DEVICE_ATTR (driver_info , 0444 , goodix_ts_driver_info_show , NULL) ;
897928static DEVICE_ATTR (chip_info , 0444 , goodix_ts_chip_info_show , NULL) ;
@@ -905,6 +936,8 @@ static DEVICE_ATTR(udfps_pressed, 0660, udfps_pressed_show, NULL);
905936static DEVICE_ATTR (udfps_enabled , 0664 , udfps_enabled_show , udfps_enabled_store ) ;
906937static DEVICE_ATTR (double_tap_pressed , 0660 , double_tap_pressed_show , NULL) ;
907938static DEVICE_ATTR (double_tap_enabled , 0664 , double_tap_enabled_show , double_tap_enabled_store ) ;
939+ static DEVICE_ATTR (single_tap_pressed , 0660 , single_tap_pressed_show , NULL) ;
940+ static DEVICE_ATTR (single_tap_enabled , 0664 , single_tap_enabled_show , single_tap_enabled_store ) ;
908941#ifdef CONFIG_TOUCHSCREEN_GOODIX_GTX8_GAMEMODE
909942static DEVICE_ATTR (game_mode , 0664 ,
910943 goodix_ts_game_mode_show , goodix_ts_game_mode_store );
@@ -923,6 +956,8 @@ static struct attribute *sysfs_attrs[] = {
923956 & dev_attr_udfps_enabled .attr ,
924957 & dev_attr_double_tap_pressed .attr ,
925958 & dev_attr_double_tap_enabled .attr ,
959+ & dev_attr_single_tap_pressed .attr ,
960+ & dev_attr_single_tap_enabled .attr ,
926961#ifdef CONFIG_TOUCHSCREEN_GOODIX_GTX8_GAMEMODE
927962 & dev_attr_game_mode .attr ,
928963#endif
@@ -1769,11 +1804,11 @@ int goodix_ts_suspend(struct goodix_ts_core *core_data)
17691804
17701805 r = ext_module -> funcs -> before_suspend (core_data , ext_module );
17711806 if (r == EVT_CANCEL_SUSPEND ) {
1772- if (core_data -> double_tap_enabled && core_data -> udfps_enabled ) {
1807+ if (core_data -> double_tap_enabled && ( core_data -> udfps_enabled || core_data -> single_tap_enabled ) ) {
17731808 atomic_set (& core_data -> suspend_stat , TP_GESTURE_DBCLK_FOD );
17741809 } else if (core_data -> double_tap_enabled ) {
17751810 atomic_set (& core_data -> suspend_stat , TP_GESTURE_DBCLK );
1776- } else if (core_data -> udfps_enabled ) {
1811+ } else if (core_data -> udfps_enabled || core_data -> single_tap_enabled ) {
17771812 atomic_set (& core_data -> suspend_stat , TP_GESTURE_FOD );
17781813 }
17791814 ts_info ("suspend_stat[%d]" , atomic_read (& core_data -> suspend_stat ));
@@ -1989,7 +2024,7 @@ int goodix_ts_msm_drm_notifier_callback(struct notifier_block *self,
19892024 //if (!atomic_read(&core_data->suspend_stat))
19902025 core_data -> udfps_pressed = 0 ;
19912026 core_data -> double_tap_pressed = 0 ;
1992- ts_info ( " core_data->suspend_stat = %d\n" , atomic_read ( & core_data -> suspend_stat )) ;
2027+ core_data -> single_tap_pressed = 0 ;
19932028 ts_info ("touchpanel resume" );
19942029 queue_work (core_data -> event_wq , & core_data -> resume_work );
19952030 return 0 ;
0 commit comments