Skip to content

Commit 235a6dc

Browse files
committedMar 6, 2016
use MSC_GESTURE events
1 parent 88ce493 commit 235a6dc

File tree

1 file changed

+44
-27
lines changed

1 file changed

+44
-27
lines changed
 

‎drivers/input/touchscreen/synaptics_driver_s3508.c

+44-27
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,15 @@ struct test_header {
140140
#endif
141141
// carlo@oneplus.net 2015-05-25, end.
142142

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+
143152
#define BIT0 (0x1 << 0)
144153
#define BIT1 (0x1 << 1)
145154
#define BIT2 (0x1 << 2)
@@ -1504,25 +1513,25 @@ static void gesture_judge(struct synaptics_ts_data *ts)
15041513
// Get key code based on registered gesture.
15051514
switch (gesture) {
15061515
case DouTap:
1507-
keyCode = KEY_DOUBLE_TAP;
1516+
keyCode = MSC_GESTURE_DOUBLE_TAP; // KEY_DOUBLE_TAP;
15081517
break;
15091518
case UpVee:
1510-
keyCode = KEY_GESTURE_V;
1519+
keyCode = MSC_GESTURE_V; // KEY_GESTURE_V;
15111520
break;
15121521
case DownVee:
1513-
keyCode = KEY_GESTURE_DOWN_V;
1522+
keyCode = MSC_GESTURE_DOWN_V; // KEY_GESTURE_DOWN_V;
15141523
break;
15151524
case LeftVee:
1516-
keyCode = KEY_GESTURE_RIGHT_V;
1525+
keyCode = MSC_GESTURE_RIGHT_V; // KEY_GESTURE_RIGHT_V;
15171526
break;
15181527
case RightVee:
1519-
keyCode = KEY_GESTURE_LEFT_V;
1528+
keyCode = MSC_GESTURE_LEFT_V; // KEY_GESTURE_LEFT_V;
15201529
break;
15211530
case Circle:
1522-
keyCode = KEY_GESTURE_CIRCLE;
1531+
keyCode = MSC_GESTURE_CIRCLE; // KEY_GESTURE_CIRCLE;
15231532
break;
15241533
case DouSwip:
1525-
keyCode = KEY_GESTURE_TWO_SWIPE;
1534+
keyCode = MSC_GESTURE_TWO_SWIPE; // KEY_GESTURE_TWO_SWIPE;
15261535
break;
15271536
default:
15281537
break;
@@ -1550,10 +1559,12 @@ static void gesture_judge(struct synaptics_ts_data *ts)
15501559
||(gesture == DownVee && DownVee_gesture)\
15511560
||(gesture == Circle && Circle_gesture)||(gesture == DouSwip && DouSwip_gesture)){
15521561
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);
15571568
}else{
15581569
//if(is_project(OPPO_14005) || is_project(OPPO_15011)){
15591570
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)
34893500
set_bit(EV_SYN, ts->input_dev->evbit);
34903501
set_bit(EV_ABS, ts->input_dev->evbit);
34913502
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);
34923506
set_bit(ABS_MT_TOUCH_MAJOR, ts->input_dev->absbit);
34933507
set_bit(ABS_MT_WIDTH_MAJOR,ts->input_dev->absbit);
34943508
set_bit(ABS_MT_POSITION_X, ts->input_dev->absbit);
34953509
set_bit(ABS_MT_POSITION_Y, ts->input_dev->absbit);
34963510
set_bit(INPUT_PROP_DIRECT, ts->input_dev->propbit);
34973511

34983512
#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);
35093523
#endif
35103524

35113525
/* For multi touch */
@@ -3947,7 +3961,7 @@ static ssize_t flashlight_enable_write_func(struct file *file, const char __user
39473961
return count;
39483962
}
39493963

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)
39513965
{
39523966
int ret = 0;
39533967
char page[PAGESIZE];
@@ -3956,7 +3970,7 @@ static ssize_t voicecall_enable_read_func(struct file *file, char __user *user_b
39563970
return ret;
39573971
}
39583972

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)
39603974
{
39613975
int ret = 0;
39623976
struct synaptics_ts_data *ts = ts_g;
@@ -4045,9 +4059,9 @@ static const struct file_operations flashlight_enable_proc_fops = {
40454059
.owner = THIS_MODULE,
40464060
};
40474061

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,
40514065
.open = simple_open,
40524066
.owner = THIS_MODULE,
40534067
};
@@ -4150,7 +4164,7 @@ static int init_synaptics_proc(void)
41504164
printk(KERN_INFO"init_synaptics_proc: Couldn't create proc entry\n");
41514165
}
41524166

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);
41544168
if(prEntry_tmp == NULL){
41554169
ret = -ENOMEM;
41564170
printk(KERN_INFO"init_synaptics_proc: Couldn't create proc entry\n");
@@ -5360,3 +5374,6 @@ module_exit(tpd_driver_exit);
53605374

53615375
MODULE_DESCRIPTION("Synaptics S3203 Touchscreen Driver");
53625376
MODULE_LICENSE("GPL");
5377+
5378+
5379+

0 commit comments

Comments
 (0)
Please sign in to comment.