linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nuno Lucas <ntlucas@gmail.com>
To: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, daniel.ritz@gmx.ch
Subject: usbtouchscreen: eGalax (clone?) not being ignored by the  usbtouchscreen driver
Date: Wed, 8 Apr 2009 14:50:45 +0100	[thread overview]
Message-ID: <c4f20e170904080650v34def3a0neb5e09f402c202a1@mail.gmail.com> (raw)

In a recent patch [1], Daniel Ritz added
USB_DEVICE_ID_MATCH_INT_PROTOCOL for the "match_flags" of the
USB_DEVICE_HID_CLASS macro, but I have another "eGalax" controller
with the same USB properties but that needs to be handled by the
usbhid driver.

My "/proc/bus/usb/devices" part:

T:  Bus=05 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0eef ProdID=0001 Rev= 1.00
S:  Manufacturer=eGalax Inc.
S:  Product=Touch
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=10ms

If I remove the USB_DEVICE_ID_MATCH_INT_PROTOCOL then the
usbtouchscreen driver ignores the device and usbhid takes over as it
should be. But with the current code, usbtouchscreen claims the device
and as it doesn't understand the protocol makes the device unusable.

The device mentioned on the thread that needs the usbtouchscreen
driver was this:

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 13 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0eef ProdID=0001 Rev= 1.00
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 44mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=5ms

It seems the eGalax USB ID (0eef:0001) is being (ab)used by a lot of
different manufacturers, but shouldn't the default be to let the
usbhid driver to decide if it can or not use the device if the device
class is HID? All other "eGalax" devices I have seen that really need
the usbtouchscreen driver have the 0xff class, like the one below:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0eef ProdID=0001 Rev= 1.00
S:  Manufacturer=eGalax Inc.
S:  Product=USB TouchController
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbtouchscreen
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=5ms

If there are devices that need to use usbtouchscreen and have the HID
class then, in my view, are plain broken. Maybe the solution would be
to somehow allow the user to re-attach the device to a different
driver.

As I'm no kernel programmer, anyone care to comment?


Regards,
~Nuno Lucas

[1] http://lkml.org/lkml/2009/2/8/70

                 reply	other threads:[~2009-04-08 13:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c4f20e170904080650v34def3a0neb5e09f402c202a1@mail.gmail.com \
    --to=ntlucas@gmail.com \
    --cc=daniel.ritz@gmx.ch \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).