Re: [PATCH] HID: Ignore D-WAV/eGalax devices handled by usbtouchscreen

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 6 Nov 2012, Forest Bond wrote:

> From: Forest Bond <forest.bond@xxxxxxxxxxxxxxxx>
> 
> 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@xxxxxxxxxxxxxxxx>
> ---
>  drivers/hid/hid-core.c |   11 ++++++++++-
>  drivers/hid/hid-ids.h  |    1 +
>  2 files changed, 11 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
> index f4109fd..f2d614e 100644
> --- a/drivers/hid/hid-core.c
> +++ b/drivers/hid/hid-core.c
> @@ -2188,7 +2188,16 @@ static bool hid_ignore(struct hid_device *hdev)
>  		if (hdev->product == USB_DEVICE_ID_JESS_YUREX &&
>  				hdev->type == HID_TYPE_USBNONE)
>  			return true;
> -	break;
> +		break;
> +	case USB_VENDOR_ID_DWAV:
> +		/* These are handled by usbtouchscreen. hdev->type is probably
> +		 * HID_TYPE_USBNONE, but we say !HID_TYPE_USBMOUSE to match
> +		 * usbtouchscreen. */
> +		if ((hdev->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ||
> +		     hdev->product == USB_DEVICE_ID_DWAV_TOUCHCONTROLLER) &&
> +		    hdev->type != HID_TYPE_USBMOUSE)
> +			return true;
> +		break;
>  	}
>  
>  	if (hdev->type == HID_TYPE_USBMOUSE &&
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 9d7a428..3d73774 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -257,6 +257,7 @@
>  
>  #define USB_VENDOR_ID_DWAV		0x0eef
>  #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER	0x0001
> +#define USB_DEVICE_ID_DWAV_TOUCHCONTROLLER	0x0002
>  #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D	0x480d
>  #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E	0x480e
>  #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7207	0x7207

Applied, thanks.

-- 
Jiri Kosina
SUSE Labs
--
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


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux