[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