forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
HID: Accutouch: Add driver for ELO Accutouch 2216 USB Touchscreens
The Accutouch 2216 is reporting BTN_LEFT/BTN_MOUSE rather than BTM_TOUCH in it's capabilities, which is what user space expects a touchscreen device to report. This is causing udev to consider the device to be a "VMware's USB mouse" rather than as a touchscreen, which results in a mouse cursor being displayed in Weston. This patch adds a special driver for the device to correct the capabilities reported. Signed-off-by: Martyn Welch <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
- Loading branch information
Showing
5 changed files
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
/* | ||
* HID driver for Elo Accutouch touchscreens | ||
* | ||
* Copyright (c) 2016, Collabora Ltd. | ||
* Copyright (c) 2016, General Electric Company | ||
* | ||
* based on hid-penmount.c | ||
* Copyright (c) 2014 Christian Gmeiner <christian.gmeiner <at> gmail.com> | ||
*/ | ||
|
||
/* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License as published by the Free | ||
* Software Foundation; either version 2 of the License, or (at your option) | ||
* any later version. | ||
*/ | ||
|
||
#include <linux/hid.h> | ||
#include <linux/module.h> | ||
#include "hid-ids.h" | ||
|
||
static int accutouch_input_mapping(struct hid_device *hdev, | ||
struct hid_input *hi, | ||
struct hid_field *field, | ||
struct hid_usage *usage, | ||
unsigned long **bit, int *max) | ||
{ | ||
if ((usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON) { | ||
hid_map_usage(hi, usage, bit, max, EV_KEY, BTN_TOUCH); | ||
return 1; | ||
} | ||
|
||
return 0; | ||
} | ||
|
||
static const struct hid_device_id accutouch_devices[] = { | ||
{ HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_ACCUTOUCH_2216) }, | ||
{ } | ||
}; | ||
MODULE_DEVICE_TABLE(hid, accutouch_devices); | ||
|
||
static struct hid_driver accutouch_driver = { | ||
.name = "hid-accutouch", | ||
.id_table = accutouch_devices, | ||
.input_mapping = accutouch_input_mapping, | ||
}; | ||
|
||
module_hid_driver(accutouch_driver); | ||
|
||
MODULE_AUTHOR("Martyn Welch <[email protected]"); | ||
MODULE_DESCRIPTION("Elo Accutouch HID TouchScreen driver"); | ||
MODULE_LICENSE("GPL"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters