diff mbox

HID: Ignore D-WAV/eGalax devices handled by usbtouchscreen

Message ID 20121106184122.GT12501@alittletooquiet.net (mailing list archive)
State New, archived
Delegated to: Jiri Kosina
Headers show

Commit Message

Forest Bond Nov. 6, 2012, 6:41 p.m. UTC
From: Forest Bond <forest.bond@rapidrollout.com>

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@rapidrollout.com>
---
 drivers/hid/hid-core.c |   11 ++++++++++-
 drivers/hid/hid-ids.h  |    1 +
 2 files changed, 11 insertions(+), 1 deletions(-)

Comments

Jiri Kosina Nov. 7, 2012, 10:52 a.m. UTC | #1
On Tue, 6 Nov 2012, Forest Bond wrote:

> From: Forest Bond <forest.bond@rapidrollout.com>
> 
> 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@rapidrollout.com>
> ---
>  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.
Sergei Shtylyov Nov. 7, 2012, 11:29 a.m. UTC | #2
Hello.

On 06-11-2012 22:41, Forest Bond wrote:

> From: Forest Bond <forest.bond@rapidrollout.com>

> 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@rapidrollout.com>
> ---
>   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. */

    Note that the preferred style of multi-line comments is this, according to 
CodingStyle:

/*
  * bla
  * bla
  */

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Forest Bond Nov. 7, 2012, 1:57 p.m. UTC | #3
Hi Sergei,

On Wed, Nov 07, 2012 at 03:29:16PM +0400, Sergei Shtylyov wrote:
> Hello.
> 
> On 06-11-2012 22:41, Forest Bond wrote:
> 
> >From: Forest Bond <forest.bond@rapidrollout.com>
> 
> >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@rapidrollout.com>
> >---
> >  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. */
> 
>    Note that the preferred style of multi-line comments is this,
> according to CodingStyle:
> 
> /*
>  * bla
>  * bla
>  */
> 
> WBR, Sergei

Thanks for the feedback.  I had scanned the file and saw both styles.  It would
be nice if checkpatch.pl issued a warning for this.

Jiri, would you like me to resend?

Thanks,
Forest
Jiri Kosina Nov. 7, 2012, 2:02 p.m. UTC | #4
On Wed, 7 Nov 2012, Forest Bond wrote:

> > /*
> >  * bla
> >  * bla
> >  */
> > 
> > WBR, Sergei
> 
> Thanks for the feedback.  I had scanned the file and saw both styles.  It would
> be nice if checkpatch.pl issued a warning for this.
> 
> Jiri, would you like me to resend?

Not necessary, minor thing and patch is already applied. Thanks,
Forest Bond Nov. 7, 2012, 2:09 p.m. UTC | #5
On Wed, Nov 07, 2012 at 03:02:39PM +0100, Jiri Kosina wrote:
> On Wed, 7 Nov 2012, Forest Bond wrote:
> 
> > > /*
> > >  * bla
> > >  * bla
> > >  */
> > > 
> > > WBR, Sergei
> > 
> > Thanks for the feedback.  I had scanned the file and saw both styles.  It would
> > be nice if checkpatch.pl issued a warning for this.
> > 
> > Jiri, would you like me to resend?
> 
> Not necessary, minor thing and patch is already applied. Thanks,

Thank you.

-Forest
diff mbox

Patch

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