aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorForest Bond <forest.bond@rapidrollout.com>2012-11-06 13:41:22 -0500
committerJiri Kosina <jkosina@suse.cz>2012-11-07 05:51:28 -0500
commit729b814acec20db66fc891b5392cb653ad6598ef (patch)
tree23f65f09462fbe5301824459e2f5bdde9f63c33d /drivers/hid
parent537b6643dcb0ff7f47b21debd7bc3346b1456a44 (diff)
HID: Ignore D-WAV/eGalax devices handled by usbtouchscreen
Previously, both usbhid and usbtouchscreen would bind to D-WAV devices with class HID and protocol None, so they would be claimed by whichever driver was loaded first. Some of these devices do in fact work with usbhid, but not all of them do. OTOH they all work with usbtouchscreen as of commit 037a833ed05a86d01ea27a2c32043b86c549be1b ("Input: usbtouchscreen - initialize eGalax devices"). So we ignore them in usbhid to prevent getting in the way of usbtouchscreen and claiming an interface that we may not be able to do anything useful with. Signed-off-by: Forest Bond <forest.bond@rapidrollout.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-core.c11
-rw-r--r--drivers/hid/hid-ids.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 0a6b36fbb4ce..a7550bb30836 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2183,7 +2183,16 @@ static bool hid_ignore(struct hid_device *hdev)
2183 if (hdev->product == USB_DEVICE_ID_JESS_YUREX && 2183 if (hdev->product == USB_DEVICE_ID_JESS_YUREX &&
2184 hdev->type == HID_TYPE_USBNONE) 2184 hdev->type == HID_TYPE_USBNONE)
2185 return true; 2185 return true;
2186 break; 2186 break;
2187 case USB_VENDOR_ID_DWAV:
2188 /* These are handled by usbtouchscreen. hdev->type is probably
2189 * HID_TYPE_USBNONE, but we say !HID_TYPE_USBMOUSE to match
2190 * usbtouchscreen. */
2191 if ((hdev->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ||
2192 hdev->product == USB_DEVICE_ID_DWAV_TOUCHCONTROLLER) &&
2193 hdev->type != HID_TYPE_USBMOUSE)
2194 return true;
2195 break;
2187 } 2196 }
2188 2197
2189 if (hdev->type == HID_TYPE_USBMOUSE && 2198 if (hdev->type == HID_TYPE_USBMOUSE &&
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 9bc8d570777a..6a971477535c 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -254,6 +254,7 @@
254 254
255#define USB_VENDOR_ID_DWAV 0x0eef 255#define USB_VENDOR_ID_DWAV 0x0eef
256#define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001 256#define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER 0x0001
257#define USB_DEVICE_ID_DWAV_TOUCHCONTROLLER 0x0002
257#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D 0x480d 258#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D 0x480d
258#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E 0x480e 259#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E 0x480e
259#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207 0x7207 260#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207 0x7207