All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Tissoires <benjamin.tissoires@gmail.com>
To: Henrik Rydberg <rydberg@euromail.se>
Cc: Jiri Kosina <jkosina@suse.cz>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	Stephane Chatty <chatty@enac.fr>
Subject: Re: [PATCH v3 0/6] hid: Introduce device groups
Date: Thu, 3 May 2012 14:45:44 +0200	[thread overview]
Message-ID: <CAN+gG=GS_aQ35ekF71oCjZXquB4X3xJvzq2_fT2d7nM+iBK=Zg@mail.gmail.com> (raw)
In-Reply-To: <20120503122359.GA11552@polaris.bitmath.org>

On Thu, May 3, 2012 at 2:23 PM, Henrik Rydberg <rydberg@euromail.se> wrote:
>> I'm currently on the bug fix I told you earlier. However, I found a
>> more problematic bug in the hid_groups functionality.
>>
>> Some device, like the Perixx peripad, present several interfaces
>> (mouse, keyboard and multitouch).
>> The hid groups functionality detects the HID field Contact ID, and
>> then forwards all interfaces to hid-multitouch. The point is that
>> hid-multitouch does not know how to handle mice and keyboards, and
>> then fails handling the interfaces of the device.
>
> I am a bit unclear as to which devices this applies to, but I see two
> possible solutions:
>
> 1) Add the devices in question back to the have_special_drivers list.

Well... The device presents valid mouse and keyboard interface that
should be handled by hid-generic.
The behavior of this particular device is the following:
- when 1 finger is in use, then it sends events over the mouse interface
- when 2 fingers are present, it sends events over the multitouch interface
- when you physically trigger the switch mode button, a keyboard
appears and it sends key events over the keyboard interface, and
eventually mouse events if you press the "mouse" key.... ;-)

This crap is all inherited by the fact that Microsoft do not want to
handle indirect touch, and the device maker found this solution to
counter this.

To sum up, adding it to the have_special_drivers driver list won't
work as we need part of the device to be handled by hid-generic.

>
> 2) Add the interface type to the group descision, which should
> probably be done anyway. I have a patch in the pipe that, will send it
> later today.

A simpler solution consists in adding the macros HID_USB_MT_DEVICE(v,
p) and HID_BLUETOOTH_MT_DEVICE(v, p) as you had introduced in a
earlier patch (I don't know why it disappeared).

The problem came out because:
- hid-multitouch registered the triplet BUS_USB / VID / PID.
- For each interface, it asks udev (or the kernel) which driver to
use, and whatever .group was, it was always hid-multitouch that came
out.

So it's just safer to specify the group for all multitouch devices.

Cheers,
Benjamin

>
>> This particular device is then fully broken (as anyone pumped the events).
>> I also noticed the same problem (but less problematic) with cypress
>> panels: it presents different vendor interfaces and they are handled
>> by hid-multitouch.
>
> It would be great if you could test soution 1) before on a device -
> something seems wrong if those interfaces were handled by hid-generic
> before, but before getting the logic straight, it does not hurt to
> try. :-)
>
> Thanks,
> Henrik

  reply	other threads:[~2012-05-03 12:52 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-23 10:07 [PATCH v3 0/6] hid: Introduce device groups Henrik Rydberg
2012-04-23 10:07 ` [PATCH v2 1/6] hid: Add device group to modalias Henrik Rydberg
2012-04-23 10:07 ` [PATCH 2/6] hid: Scan the device for group info before adding it Henrik Rydberg
2012-04-24 12:31   ` Jiri Kosina
2012-04-24 12:41     ` Henrik Rydberg
2012-04-23 10:07 ` [PATCH v2 3/6] hid: Allow bus wildcard matching Henrik Rydberg
2012-04-23 10:07 ` [PATCH v3 4/6] hid: Create a generic device group Henrik Rydberg
2012-04-23 21:26   ` Gustavo Padovan
2012-04-23 22:31     ` Henrik Rydberg
2012-04-23 10:07 ` [PATCH v3 5/6] hid-multitouch: Switch to device groups Henrik Rydberg
2012-04-30 14:58   ` Benjamin Tissoires
2012-04-30 14:58     ` Benjamin Tissoires
2012-04-30 16:42     ` Jiri Kosina
2012-04-30 18:30     ` Henrik Rydberg
2012-04-30 18:51       ` Benjamin Tissoires
2012-04-30 18:51         ` Benjamin Tissoires
2012-05-01  6:35         ` Henrik Rydberg
2012-04-23 10:07 ` [PATCH 6/6] hid: Create a common generic driver Henrik Rydberg
2012-04-23 10:51 ` [PATCH v3 0/6] hid: Introduce device groups Benjamin Tissoires
2012-04-23 10:51   ` Benjamin Tissoires
2012-04-23 15:21 ` Benjamin Tissoires
2012-04-23 15:21   ` Benjamin Tissoires
2012-04-30  8:35 ` Jiri Kosina
2012-04-30  8:44   ` Jiri Kosina
2012-04-30 11:53     ` Henrik Rydberg
2012-04-30 11:55       ` Jiri Kosina
2012-05-01 12:23         ` Jiri Kosina
2012-05-01 11:03 ` Jiri Kosina
2012-05-02  5:46   ` Henrik Rydberg
2012-05-02  8:33   ` Benjamin Tissoires
2012-05-02  8:45     ` Jiri Kosina
2012-05-02 10:55       ` Benjamin Tissoires
2012-05-03 10:06         ` Benjamin Tissoires
2012-05-03 12:23           ` Henrik Rydberg
2012-05-03 12:45             ` Benjamin Tissoires [this message]
2012-05-03 13:19               ` Henrik Rydberg
2012-05-03 13:37                 ` Benjamin Tissoires
2012-05-03 13:54                   ` Henrik Rydberg
2012-05-03 14:04                     ` Benjamin Tissoires
2012-05-03 14:16                       ` Henrik Rydberg

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='CAN+gG=GS_aQ35ekF71oCjZXquB4X3xJvzq2_fT2d7nM+iBK=Zg@mail.gmail.com' \
    --to=benjamin.tissoires@gmail.com \
    --cc=chatty@enac.fr \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rydberg@euromail.se \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.