Re: HID input dealing with multiple collections?

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

 



On 09/09/13 14:12, Benjamin Tissoires wrote:
Hi,

On Mon, Sep 9, 2013 at 2:56 PM, Breton M. Saunders <bms20@xxxxxxxxxxx> wrote:
Hello,

   I've written a USB device which supports multiple input devices:
     * A touch surface digitizer (following Microsoft's specification)
     * A pen surface digitizer
     * A mouse emulator

   In windows each of these interfaces are exposed as a separate top level
collection, e.g.:
   Usage_Page(Generic Desktop)
   Usage(Mouse)
   Collection(Application)
        ...
   End_Collection
   Usage_Page(Digitzer)
   Usage(Touch_Screen)
   Collection(Application)
      ...
   End_Collection
   Usage(Digitizer)
   Usage(Pen)
   Collection(Application)
      ...
   End_Collection

   Now this descriptor works well in Windows; all reporting channels are
exposed correctly as hid devices and mouse/multitouch/pen input all works
correctly as expected.  In linux, however, this is not the case.  What I see
is that if I drop out the touch/pen functionality then the mouse support
works correctly.  Likewise, if I drop any pair of other top level
collections such that I have exactly one top level collection the system
works correctly.

   Am I missing something here - as in: Have I made an error in my usage of
top level collections, or is linux-input's hid support incapable of dealing
with multiple top level collections?
If it works under Windows, there are huge chances that your report
descriptor is good.

However, under Linux, we use the report IDs to split (if required) the
different inputs.
The good thing for you is that if I understand correctly, the device
you are talking about should be handled through hid-multitouch. Since
kernel v3.10, we have introduced the support of devices showing both a
digitizer and a pen (they will show up as two input devices).

I would encourage you to test a 3.10 kernel, and/or send me some
traces of your devices by using hid-replay[1]. This way I will be able
to test your device on my laptop, and eventually figure out any
problem.

Cheers,
Hi Benjamin,

  Thanks for the quick reply.

3.10 is a no-go for me; I need to get this working on a vanilla (or upgraded) version of Ubuntu 12.04; so something more like kernel version 3.2. (Unfortunately, its what people are using in the field).

I will, however, install a more modern kernel to test against; esp. since I note your HID-replay tool requires 3.6 to test with.

Would the correct approach here be to implement a composite USB device and have separate USB interfaces for mouse, touch and pen for compatibility with older kernel revisions?

    Cheers,

    -Brett
--
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