2012-11-05 20:05:38

by Chris J Arges

[permalink] [raw]
Subject: [PATCH] hid: usbhid: add quirk for SB arena headset v2

When an SB Arena USB headset is plugged in, it registers the volume
keys on the headset as a keyboard and continually sends events causing
issues with normal keyboard input. This quirk disables the volume keys.

BugLink: http://bugs.launchpad.net/bugs/1007575
Signed-off-by: Chris J Arges <[email protected]>
---
drivers/hid/hid-ids.h | 1 +
drivers/hid/usbhid/hid-quirks.c | 1 +
2 files changed, 2 insertions(+)

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 269b509..1936414 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -223,6 +223,7 @@

#define USB_VENDOR_ID_CREATIVELABS 0x041e
#define USB_DEVICE_ID_PRODIKEYS_PCMIDI 0x2801
+#define USB_DEVICE_ID_SB_ARENA_HEADSET 0x0403

#define USB_VENDOR_ID_CVTOUCH 0x1ff7
#define USB_DEVICE_ID_CVTOUCH_SCREEN 0x0013
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
index 11c7932..4bee3b7 100644
--- a/drivers/hid/usbhid/hid-quirks.c
+++ b/drivers/hid/usbhid/hid-quirks.c
@@ -68,6 +68,7 @@ static const struct hid_blacklist {
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_3AXIS_5BUTTON_STICK, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_AXIS_295, HID_QUIRK_NOGET },
+ { USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_SB_ARENA_HEADSET, HID_QUIRK_IGNORE },
{ USB_VENDOR_ID_DMI, USB_DEVICE_ID_DMI_ENC, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2700, HID_QUIRK_NOGET },
{ USB_VENDOR_ID_FREESCALE, USB_DEVICE_ID_FREESCALE_MX28, HID_QUIRK_NOGET },
--
1.7.9.5


2012-11-05 20:18:22

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] hid: usbhid: add quirk for SB arena headset v2

On Mon, 5 Nov 2012, Chris J Arges wrote:

> When an SB Arena USB headset is plugged in, it registers the volume
> keys on the headset as a keyboard and continually sends events causing
> issues with normal keyboard input. This quirk disables the volume keys.

I don't know how the device looks like, but wouldn't it make more sense to
actually remap the bogus keys it's sending to produce KEY_VOLUMEUP and
KEY_VOLUMEDOWN?

--
Jiri Kosina
SUSE Labs

2012-11-05 21:32:13

by Chris J Arges

[permalink] [raw]
Subject: Re: [PATCH] hid: usbhid: add quirk for SB arena headset v2

On 11/05/2012 02:18 PM, Jiri Kosina wrote:
> On Mon, 5 Nov 2012, Chris J Arges wrote:
>
>> When an SB Arena USB headset is plugged in, it registers the volume
>> keys on the headset as a keyboard and continually sends events causing
>> issues with normal keyboard input. This quirk disables the volume keys.
>
> I don't know how the device looks like, but wouldn't it make more sense to
> actually remap the bogus keys it's sending to produce KEY_VOLUMEUP and
> KEY_VOLUMEDOWN?
>

Yes, if I can track this hardware down or get data I'll fix it like
this. This happened to be a do-no harm fix for the following bug:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1007575

Thanks for the feedback.
--chris j arges

2012-11-06 11:14:50

by Jiri Kosina

[permalink] [raw]
Subject: Re: [PATCH] hid: usbhid: add quirk for SB arena headset v2

On Mon, 5 Nov 2012, Chris J Arges wrote:

> >> When an SB Arena USB headset is plugged in, it registers the volume
> >> keys on the headset as a keyboard and continually sends events causing
> >> issues with normal keyboard input. This quirk disables the volume keys.
> >
> > I don't know how the device looks like, but wouldn't it make more sense to
> > actually remap the bogus keys it's sending to produce KEY_VOLUMEUP and
> > KEY_VOLUMEDOWN?
> >
>
> Yes, if I can track this hardware down or get data I'll fix it like
> this. This happened to be a do-no harm fix for the following bug:
> https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1007575

You should be able to obtain it easily either by running evtest on
corresponding /dev/input/eventX node, or by looking into debugfs
hid/<device>/events file.

--
Jiri Kosina
SUSE Labs