[KARMIC] SRU: HID: ignore all recent SoundGraph iMON devices
Colin Ian King
colin.king at canonical.com
Wed Feb 3 10:04:47 UTC 2010
On Tue, 2010-02-02 at 12:06 -0800, Surbhi Palande wrote:
> Justification:
>
> Impact:
> The original lirc_imon driver did not support ranges of device ids, but a few specific ones.
> New devices have been added and their device ids are not checked, without this patch.
> Hence these devices are not supported.
>
> Fix:
> This patch adds a check for a range of device ids to the lirc_imon driver.
> The bug on launchpad requested support for device id 0x43 which is supported in this range,
> checked by this patch.
> Its a simple quirk and is available in linus tree upstream. Do consider
> SRUing this for Karmic.
>
>
> Test Case:
> Was tested with 2.6.32 kernel which has this same patch.
>
>
> From 31f7fd795d17b264c3c05e4a976f963012c17c68 Mon Sep 17 00:00:00 2001
> From: Jarod Wilson <jarod at redhat.com>
> Date: Fri, 31 Jul 2009 10:56:36 -0400
> Subject: [PATCH] HID: ignore all recent SoundGraph iMON devices
>
> BugLink: http://bugs.launchpad.net/bugs/488443
>
> After some inspection of the Windows iMON driver, several additional
> device IDs were added to the lirc_imon driver. At least a few of these
> have been seen in the wild, and require manual quirking to keep the
> usbhid driver from binding to them. Rather than list out every single
> device, ignore the entire device ID range, 0x0034 - 0x0046. Some of
> these may not advertise themselves as HID devices, but no harm done to
> such devices anyway. Does the right thing in brief testing w/my 0x0045
> device.
>
> Signed-off-by: Jarod Wilson <jarod at redhat.com>
> Acked-by: Anssi Hannula <anssi.hannula at gmail.com>
> Signed-off-by: Jiri Kosina <jkosina at suse.cz>
>
> (cherry picked from upstream commit 31f7fd795d17b264c3c05e4a976f963012c17c68)
>
> Signed-off-by: Surbhi Palande <surbhi.palande at canonical.com>
> ---
> drivers/hid/hid-core.c | 10 +++++-----
> drivers/hid/hid-ids.h | 7 ++-----
> 2 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index 6164ed3..afb6a3b 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -1627,11 +1627,6 @@ static const struct hid_device_id hid_ignore_list[] = {
> { HID_USB_DEVICE(USB_VENDOR_ID_PANJIT, 0x0003) },
> { HID_USB_DEVICE(USB_VENDOR_ID_PANJIT, 0x0004) },
> { HID_USB_DEVICE(USB_VENDOR_ID_POWERCOM, USB_DEVICE_ID_POWERCOM_UPS) },
> - { HID_USB_DEVICE(USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD) },
> - { HID_USB_DEVICE(USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD2) },
> - { HID_USB_DEVICE(USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD3) },
> - { HID_USB_DEVICE(USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD4) },
> - { HID_USB_DEVICE(USB_VENDOR_ID_SOUNDGRAPH, USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD5) },
> { HID_USB_DEVICE(USB_VENDOR_ID_TENX, USB_DEVICE_ID_TENX_IBUDDY1) },
> { HID_USB_DEVICE(USB_VENDOR_ID_TENX, USB_DEVICE_ID_TENX_IBUDDY2) },
> { HID_USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LABPRO) },
> @@ -1698,6 +1693,11 @@ static bool hid_ignore(struct hid_device *hdev)
> hdev->product <= USB_DEVICE_ID_LOGITECH_HARMONY_LAST)
> return true;
> break;
> + case USB_VENDOR_ID_SOUNDGRAPH:
> + if (hdev->product >= USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST &&
> + hdev->product <= USB_DEVICE_ID_SOUNDGRAPH_IMON_LAST)
> + return true;
> + break;
> }
>
> if (hdev->type == HID_TYPE_USBMOUSE &&
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 3058e47..35752fc 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -377,11 +377,8 @@
> #define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
>
> #define USB_VENDOR_ID_SOUNDGRAPH 0x15c2
> -#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD 0x0038
> -#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD2 0x0036
> -#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD3 0x0034
> -#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD4 0x0044
> -#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LCD5 0x0045
> +#define USB_DEVICE_ID_SOUNDGRAPH_IMON_FIRST 0x0034
> +#define USB_DEVICE_ID_SOUNDGRAPH_IMON_LAST 0x0046
>
> #define USB_VENDOR_ID_SUN 0x0430
> #define USB_DEVICE_ID_RARITAN_KVM_DONGLE 0xcdab
> --
> 1.6.3.3
>
>
Seems like a better generic solution that will catch more
devices than the original approach.
Acked-by: Colin King <colin.king at canonical.com>
--
Colin Ian King <colin.king at canonical.com>
More information about the kernel-team
mailing list