@@ -140,6 +140,15 @@ struct test_header {
140
140
#endif
141
141
// carlo@oneplus.net 2015-05-25, end.
142
142
143
+ #define MSC_GESTURE_DOUBLE_TAP 4
144
+ #define MSC_GESTURE_V 5
145
+ #define MSC_GESTURE_CIRCLE 6
146
+ #define MSC_GESTURE_DOWN_V 7
147
+ #define MSC_GESTURE_TWO_SWIPE 8
148
+ #define MSC_GESTURE_RIGHT_V 9
149
+ #define MSC_GESTURE_LEFT_V 10
150
+
151
+
143
152
#define BIT0 (0x1 << 0)
144
153
#define BIT1 (0x1 << 1)
145
154
#define BIT2 (0x1 << 2)
@@ -1504,25 +1513,25 @@ static void gesture_judge(struct synaptics_ts_data *ts)
1504
1513
// Get key code based on registered gesture.
1505
1514
switch (gesture ) {
1506
1515
case DouTap :
1507
- keyCode = KEY_DOUBLE_TAP ;
1516
+ keyCode = MSC_GESTURE_DOUBLE_TAP ; // KEY_DOUBLE_TAP;
1508
1517
break ;
1509
1518
case UpVee :
1510
- keyCode = KEY_GESTURE_V ;
1519
+ keyCode = MSC_GESTURE_V ; // KEY_GESTURE_V;
1511
1520
break ;
1512
1521
case DownVee :
1513
- keyCode = KEY_GESTURE_DOWN_V ;
1522
+ keyCode = MSC_GESTURE_DOWN_V ; // KEY_GESTURE_DOWN_V;
1514
1523
break ;
1515
1524
case LeftVee :
1516
- keyCode = KEY_GESTURE_RIGHT_V ;
1525
+ keyCode = MSC_GESTURE_RIGHT_V ; // KEY_GESTURE_RIGHT_V;
1517
1526
break ;
1518
1527
case RightVee :
1519
- keyCode = KEY_GESTURE_LEFT_V ;
1528
+ keyCode = MSC_GESTURE_LEFT_V ; // KEY_GESTURE_LEFT_V;
1520
1529
break ;
1521
1530
case Circle :
1522
- keyCode = KEY_GESTURE_CIRCLE ;
1531
+ keyCode = MSC_GESTURE_CIRCLE ; // KEY_GESTURE_CIRCLE;
1523
1532
break ;
1524
1533
case DouSwip :
1525
- keyCode = KEY_GESTURE_TWO_SWIPE ;
1534
+ keyCode = MSC_GESTURE_TWO_SWIPE ; // KEY_GESTURE_TWO_SWIPE;
1526
1535
break ;
1527
1536
default :
1528
1537
break ;
@@ -1550,10 +1559,12 @@ static void gesture_judge(struct synaptics_ts_data *ts)
1550
1559
|| (gesture == DownVee && DownVee_gesture )\
1551
1560
|| (gesture == Circle && Circle_gesture )|| (gesture == DouSwip && DouSwip_gesture )){
1552
1561
gesture_upload = gesture ;
1553
- input_report_key (ts -> input_dev , keyCode , 1 );
1554
- input_sync (ts -> input_dev );
1555
- input_report_key (ts -> input_dev , keyCode , 0 );
1556
- input_sync (ts -> input_dev );
1562
+ input_event (ts -> input_dev , EV_MSC , MSC_GESTURE , keyCode );
1563
+ //input_report_key(ts->input_dev, keyCode, 1);
1564
+ input_sync (ts -> input_dev );
1565
+ //input_event(ts->input_dev, EV_MSC, MSC_GESTURE, 0);
1566
+ //input_report_key(ts->input_dev, keyCode, 0);
1567
+ //input_sync(ts->input_dev);
1557
1568
}else {
1558
1569
//if(is_project(OPPO_14005) || is_project(OPPO_15011)){
1559
1570
ret = i2c_smbus_read_i2c_block_data ( ts -> client , F12_2D_CTRL20 , 3 , & (reportbuf [0x0 ]) );
@@ -3489,23 +3500,26 @@ static int synaptics_input_init(struct synaptics_ts_data *ts)
3489
3500
set_bit (EV_SYN , ts -> input_dev -> evbit );
3490
3501
set_bit (EV_ABS , ts -> input_dev -> evbit );
3491
3502
set_bit (EV_KEY , ts -> input_dev -> evbit );
3503
+ set_bit (EV_MSC , ts -> input_dev -> evbit );
3504
+ //set_bit(MSC_GESTURE, ts->input_dev->mscbit);
3505
+ ts -> input_dev -> mscbit [0 ] = BIT_MASK (MSC_GESTURE );
3492
3506
set_bit (ABS_MT_TOUCH_MAJOR , ts -> input_dev -> absbit );
3493
3507
set_bit (ABS_MT_WIDTH_MAJOR ,ts -> input_dev -> absbit );
3494
3508
set_bit (ABS_MT_POSITION_X , ts -> input_dev -> absbit );
3495
3509
set_bit (ABS_MT_POSITION_Y , ts -> input_dev -> absbit );
3496
3510
set_bit (INPUT_PROP_DIRECT , ts -> input_dev -> propbit );
3497
3511
3498
3512
#ifdef SUPPORT_GESTURE
3499
- set_bit (KEY_F4 , ts -> input_dev -> keybit );//doulbe-tap resume
3500
- set_bit (KEY_DOUBLE_TAP , ts -> input_dev -> keybit );
3501
- set_bit (KEY_GESTURE_CIRCLE , ts -> input_dev -> keybit );
3502
- set_bit (KEY_GESTURE_V , ts -> input_dev -> keybit );
3503
- set_bit (KEY_GESTURE_LEFT_V , ts -> input_dev -> keybit );
3504
- set_bit (KEY_GESTURE_RIGHT_V , ts -> input_dev -> keybit );
3505
- set_bit (KEY_GESTURE_TWO_SWIPE , ts -> input_dev -> keybit );
3506
- set_bit (KEY_MENU , ts -> input_dev -> keybit );
3507
- set_bit (KEY_HOMEPAGE , ts -> input_dev -> keybit );
3508
- set_bit (KEY_BACK , ts -> input_dev -> keybit );
3513
+ set_bit (KEY_F4 , ts -> input_dev -> keybit );//doulbe-tap resume
3514
+ set_bit (KEY_DOUBLE_TAP , ts -> input_dev -> keybit );
3515
+ // set_bit(KEY_GESTURE_CIRCLE, ts->input_dev->keybit);
3516
+ // set_bit(KEY_GESTURE_V, ts->input_dev->keybit);
3517
+ // set_bit(KEY_GESTURE_LEFT_V, ts->input_dev->keybit);
3518
+ // set_bit(KEY_GESTURE_RIGHT_V, ts->input_dev->keybit);
3519
+ // set_bit(KEY_GESTURE_TWO_SWIPE, ts->input_dev->keybit);
3520
+ set_bit (KEY_MENU , ts -> input_dev -> keybit );
3521
+ set_bit (KEY_HOMEPAGE , ts -> input_dev -> keybit );
3522
+ set_bit (KEY_BACK , ts -> input_dev -> keybit );
3509
3523
#endif
3510
3524
3511
3525
/* For multi touch */
@@ -3947,7 +3961,7 @@ static ssize_t flashlight_enable_write_func(struct file *file, const char __user
3947
3961
return count ;
3948
3962
}
3949
3963
3950
- static ssize_t voicecall_enable_read_func (struct file * file , char __user * user_buf , size_t count , loff_t * ppos )
3964
+ static ssize_t downvee_enable_read_func (struct file * file , char __user * user_buf , size_t count , loff_t * ppos )
3951
3965
{
3952
3966
int ret = 0 ;
3953
3967
char page [PAGESIZE ];
@@ -3956,7 +3970,7 @@ static ssize_t voicecall_enable_read_func(struct file *file, char __user *user_b
3956
3970
return ret ;
3957
3971
}
3958
3972
3959
- static ssize_t voicecall_enable_write_func (struct file * file , const char __user * buf , size_t count , loff_t * ppos )
3973
+ static ssize_t downvee_enable_write_func (struct file * file , const char __user * buf , size_t count , loff_t * ppos )
3960
3974
{
3961
3975
int ret = 0 ;
3962
3976
struct synaptics_ts_data * ts = ts_g ;
@@ -4045,9 +4059,9 @@ static const struct file_operations flashlight_enable_proc_fops = {
4045
4059
.owner = THIS_MODULE ,
4046
4060
};
4047
4061
4048
- static const struct file_operations voicecall_enable_proc_fops = {
4049
- .write = voicecall_enable_write_func ,
4050
- .read = voicecall_enable_read_func ,
4062
+ static const struct file_operations downvee_enable_proc_fops = {
4063
+ .write = downvee_enable_write_func ,
4064
+ .read = downvee_enable_read_func ,
4051
4065
.open = simple_open ,
4052
4066
.owner = THIS_MODULE ,
4053
4067
};
@@ -4150,7 +4164,7 @@ static int init_synaptics_proc(void)
4150
4164
printk (KERN_INFO "init_synaptics_proc: Couldn't create proc entry\n" );
4151
4165
}
4152
4166
4153
- prEntry_tmp = proc_create ("voicecall_enable " , 0666 , prEntry_tp , & voicecall_enable_proc_fops );
4167
+ prEntry_tmp = proc_create ("downvee_enable " , 0666 , prEntry_tp , & downvee_enable_proc_fops );
4154
4168
if (prEntry_tmp == NULL ){
4155
4169
ret = - ENOMEM ;
4156
4170
printk (KERN_INFO "init_synaptics_proc: Couldn't create proc entry\n" );
@@ -5360,3 +5374,6 @@ module_exit(tpd_driver_exit);
5360
5374
5361
5375
MODULE_DESCRIPTION ("Synaptics S3203 Touchscreen Driver" );
5362
5376
MODULE_LICENSE ("GPL" );
5377
+
5378
+
5379
+
0 commit comments