Hi All, We have received multiple bug reports that Plantronics headsets are causing or interfering with mouse events. We've identified the root cause of this in hid-input.c, where un-handled usages (from any usage page) will be mapped to miscellaneous LEDs, buttons, or movements. In short, press a USB equipped volume, mute, or hang-up button and get a random mouse event. This intermittent behavior isn't consistent across all headsets since with similar capabilities as usages marked 'constant' are ignored early on in 'hidinput_configure_usage'. While interpretation of the correct use of 'constant usages' is left to the individual vendors, we still feel that the HID input driver should not be mapping otherwise unhandled usages to LED_/BIN_/REL_/ABS_MISC usages events. Solving this issue is a larger effort and it's hard for us to comment on the needs of other manufacturers. That said, we would like to propose the attached interim fix which assumes mouse events don't come from the Telephony page. jd ------------------ snip -------------------- >From 647545b985b75434609c58dda2ef6612e231a44e Mon Sep 17 00:00:00 2001 From: JD Cole <jd.cole@xxxxxxxxxxxxxxx> Date: Fri, 10 Oct 2014 17:41:27 -0400 Subject: [PATCH] Prevent HID Telephony page events from being mapped to miscellaneous buttons. The hid-input previously interpreted un-mapped telephony page usages, incorrectly, to misc mouse, button, or LED messages. Exhibited most commonly as an USB telephony headsets causing intermittent or "random" mouse behavior. Signed-off-by: JD Cole <jd.cole@xxxxxxxxxxxxxxx> --- drivers/hid/hid-input.c | 3 +++ include/linux/hid.h | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 012880a..1e9ef8e 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -895,6 +895,9 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel } break; + case HID_UP_TELEPHONY: + goto ignore; + default: unknown: if (field->report_size == 1) { diff --git a/include/linux/hid.h b/include/linux/hid.h index 4f8aa47..6489a93 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h @@ -159,6 +159,7 @@ struct hid_item { #define HID_UP_LED 0x00080000 #define HID_UP_BUTTON 0x00090000 #define HID_UP_ORDINAL 0x000a0000 +#define HID_UP_TELEPHONY 0x000b0000 #define HID_UP_CONSUMER 0x000c0000 #define HID_UP_DIGITIZER 0x000d0000 #define HID_UP_PID 0x000f0000 -- 1.8.3.1 ________________________________ CONFIDENTIALITY NOTICE: This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain information that is confidential and/or legally privileged. If you are not the intended recipient, or a person responsible for delivering it to the intended recipient, please DO NOT disclose the contents to another person, store or copy the information in any medium, or use any of the information contained in or attached to this transmission for any purpose. If you have received this transmission in error, please immediately notify the sender by reply email or at privacy@xxxxxxxxxxxxxxx, and destroy the original transmission and its attachments without reading or saving in any manner. For further information about Plantronics - the Company, its products, brands, partners, please visit our website www.plantronics.com. -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html