From c88222e4936abf2e3ef468d49aaf85e85896803f Mon Sep 17 00:00:00 2001 From: Luo wei Date: Mon, 5 Dec 2016 14:25:54 +0800 Subject: [PATCH] hid: rkvr: add 0x110 key event used for touchpad Change-Id: I8a57bbddcf1115414c1567aa05c4c19ecb1ce02c Signed-off-by: Luo wei --- drivers/hid/hid-rkvr.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/hid/hid-rkvr.c b/drivers/hid/hid-rkvr.c index eada6a54c520..95ff07fa322e 100644 --- a/drivers/hid/hid-rkvr.c +++ b/drivers/hid/hid-rkvr.c @@ -35,6 +35,7 @@ #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; @@ -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); +#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) { @@ -1064,6 +1071,14 @@ static int __must_check rkvr_keys_probe(struct hid_device *hdev) 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); -- 2.34.1