<div>These questions make me feel the kernel driver may need some work.  Anyway, let me share what I have now before we can figure out a better solution:</div>
<div> </div>
<div>Wacom supports both penabled and touch digitizers.  The older tablets doesn&#39;t have touch.  So, there is no problem there.  The newer tablets have both pen and touch through the same physical USB port. They are definded in separate HID descriptors with the same vendor id and product id.  So, for kernel, I think, it is one physical device.</div>

<div> </div>
<div>Once it comes to xorg, the device is mapped onto two logical ports.  I need a way to tell which logical port is for touch and which one is for penabled.  <br></div>
<div>Now you have the whole picture, I hope :).  What would be a valid solution for my case?</div>
<div> </div>
<div>Ping<br></div>
<div class="gmail_quote">On Tue, Nov 3, 2009 at 12:03 PM, Greg KH <span dir="ltr">&lt;<a href="mailto:greg@kroah.com">greg@kroah.com</a>&gt;</span> wrote:<br>
<blockquote style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" class="gmail_quote">
<div>
<div></div>
<div class="h5">On Tue, Nov 03, 2009 at 02:44:34PM -0500, Adam Jackson wrote:<br>&gt; On Tue, 2009-11-03 at 10:37 -0800, Greg KH wrote:<br>&gt; &gt; On Tue, Nov 03, 2009 at 01:13:16PM -0500, Adam Jackson wrote:<br>&gt; &gt; &gt; On Tue, 2009-11-03 at 10:03 -0800, Ping wrote:<br>
&gt; &gt; &gt; &gt; I need a quick answer since searching through the X server code takes<br>&gt; &gt; &gt; &gt; too long.<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Is there a way for me to get the bInterfaceNumber from a device HID<br>
&gt; &gt; &gt; &gt; Descriptor inside an xorg Input device driver?  I feel there should be<br>&gt; &gt; &gt; &gt; an existing mechanism to fulfil this, maybe through an ioctl call?<br>&gt; &gt; &gt; &gt; Can someone show me what parameter(s) I need to use if the ioctl is<br>
&gt; &gt; &gt; &gt; supported?<br>&gt; &gt; &gt; &gt;<br>&gt; &gt; &gt; &gt; Please also reply to me if you know there is no existing way to get<br>&gt; &gt; &gt; &gt; the bInterfaceNumber inside an xorg device driver so I will add my own<br>
&gt; &gt; &gt; &gt; workaround in the kernel driver.<br>&gt; &gt; &gt;<br>&gt; &gt; &gt; X doesn&#39;t have any particular knowledge of USB internally, you&#39;ll need<br>&gt; &gt; &gt; to roll your own.<br>&gt; &gt;<br>&gt; &gt; As X has knowledge of PCI internally, perhaps we should add some basic<br>
&gt; &gt; USB support as well to prevent people from having to add odd hacks to<br>&gt; &gt; kernel drivers for stuff like this?<br>&gt;<br>&gt; I&#39;m more inclined to say that different interfaces on the same USB<br>&gt; device should be different event streams in /dev/input/event*.  But I&#39;m<br>
&gt; not completely sure what problem is being solved here; in particular, if<br>&gt; the different interfaces would affect the same state machine, then that<br>&gt; doesn&#39;t really work.<br><br></div></div>They &quot;should&quot;, but there are lots of wierd USB devices out there, some<br>
that have 1 driver controling multiple interfaces just because some<br>hardware person didn&#39;t really read the USB spec :(<br><br>Either way, exposing the USB information to the xorg driver should be<br>easy enough.<br>
<br>Ping, why do you need this information in your xorg driver?<br><br>thanks,<br><br>greg k-h<br></blockquote></div><br>