浏览代码

HID: elo: clear BTN_LEFT mapping

ELO devices have one Button usage in GenDesk field, which makes hid-input map
it to BTN_LEFT; that confuses userspace, which then considers the device to be
a mouse/touchpad instead of touchscreen.

Fix that by unmapping BTN_LEFT and keeping only BTN_TOUCH in place.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina 8 年之前
父节点
当前提交
9abd04af95
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      drivers/hid/hid-elo.c

+ 6 - 0
drivers/hid/hid-elo.c

@@ -42,6 +42,12 @@ static int elo_input_configured(struct hid_device *hdev,
 {
 {
 	struct input_dev *input = hidinput->input;
 	struct input_dev *input = hidinput->input;
 
 
+	/*
+	 * ELO devices have one Button usage in GenDesk field, which makes
+	 * hid-input map it to BTN_LEFT; that confuses userspace, which then
+	 * considers the device to be a mouse/touchpad instead of touchscreen.
+	 */
+	clear_bit(BTN_LEFT, input->keybit);
 	set_bit(BTN_TOUCH, input->keybit);
 	set_bit(BTN_TOUCH, input->keybit);
 	set_bit(ABS_PRESSURE, input->absbit);
 	set_bit(ABS_PRESSURE, input->absbit);
 	input_set_abs_params(input, ABS_PRESSURE, 0, 256, 0, 0);
 	input_set_abs_params(input, ABS_PRESSURE, 0, 256, 0, 0);