hid: rkvr: add 0x110 key event used for touchpad
authorLuo wei <lw@rock-chips.com>
Mon, 5 Dec 2016 06:25:54 +0000 (14:25 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Mon, 5 Dec 2016 12:48:07 +0000 (20:48 +0800)
Change-Id: I8a57bbddcf1115414c1567aa05c4c19ecb1ce02c
Signed-off-by: Luo wei <lw@rock-chips.com>
drivers/hid/hid-rkvr.c

index eada6a54c520b54a582abfbd7753b8cf752399ac..95ff07fa322e4daf13afdfbb6735467f2453b578 100644 (file)
@@ -35,6 +35,7 @@
 #define RKVR_HIDRAW_BUFFER_SIZE 64
 #define RKVR_HIDRAW_MAX_DEVICES 8
 #define RKVR_FIRST_MINOR 0
 #define RKVR_HIDRAW_BUFFER_SIZE 64
 #define RKVR_HIDRAW_MAX_DEVICES 8
 #define RKVR_FIRST_MINOR 0
+#define RK_HID_GEAR_TOUCH
 
 static struct class *rkvr_class;
 
 
 static struct class *rkvr_class;
 
@@ -564,6 +565,12 @@ static int rkvr_keys_event(struct hid_device *hdev, void *data, unsigned long le
        } else if (rkvr_data->rkvr_data.key_map.key_enter_pressed) {
                rkvr_send_key_event(input, KEY_ENTER, 1);
                rkvr_send_key_event(input, KEY_ENTER, 0);
        } else if (rkvr_data->rkvr_data.key_map.key_enter_pressed) {
                rkvr_send_key_event(input, KEY_ENTER, 1);
                rkvr_send_key_event(input, KEY_ENTER, 0);
+#ifdef RK_HID_GEAR_TOUCH
+               input_event(input, EV_MSC, MSC_SCAN, 0x90001);
+               rkvr_send_key_event(input, 0x110, 1);
+               input_event(input, EV_MSC, MSC_SCAN, 0x90001);
+               rkvr_send_key_event(input, 0x110, 0);
+#endif
        }
 
        if (rkvr_data->rkvr_data.key_map.psensor_on) {
        }
 
        if (rkvr_data->rkvr_data.key_map.psensor_on) {
@@ -1064,6 +1071,14 @@ static int __must_check rkvr_keys_probe(struct hid_device *hdev)
                input_set_capability(input, EV_KEY, key_codes[i]);
        }
 
                input_set_capability(input, EV_KEY, key_codes[i]);
        }
 
+#ifdef RK_HID_GEAR_TOUCH
+       set_bit(EV_REL, input->evbit);
+       input_set_capability(input, EV_REL, REL_X);
+       input_set_capability(input, EV_REL, REL_Y);
+       input_set_capability(input, EV_MSC, MSC_SCAN);
+       input_set_capability(input, EV_KEY, 0x110);
+#endif
+
        error = input_register_device(input);
        if (error) {
                hid_err(hdev, "rkvr-s: Unable to register input device, error: %d\n", error);
        error = input_register_device(input);
        if (error) {
                hid_err(hdev, "rkvr-s: Unable to register input device, error: %d\n", error);