Re: [PATCH 7/7] HID: N-trig MTM Driver fix And cleanup patch 7

From: Rafi Rubin
Date: Tue Mar 09 2010 - 12:32:50 EST


On 03/09/2010 11:40 AM, Micki Balanga wrote:

Hi All
In this mail I will try to answer all your questions. First I will
explain to you N-trig Solution:
N-trig solution contains:
1. Hid kernel driver
2. User space application  N-trig propriety IP. An application which
analyzes the data received from the driver
(Pen and touch) into real events.

Already are real events. Just a little messy/noisy.

3. X11 Driver  communicate with N-trig user space application.
N-trig will release to the open source updates (bugs, and features) for
the driver and an installation package (RPM, DEB)
for user space applications. I will release an update version of the
driver, once we agree about all the changes.

Why hold back on the userspace and x11 driver source? I'm not suggesting a press release or a major publication. But perhaps showing off your other applications might explain some of your proposed changes and offer us an opportunity to help you refactor your kernel<->user space assumptions to bring them in line with other devices.

Please remember, people already have these things working in the field. They are already using pen, touch and even multi-touch. You can not offer initial support, its too late for that. And you have not been making much of a case for why your support is an improvement. Please enlighten us.

1. I'd rather remove all the MODULE_VERSION: Answer: will be done in the
next patch release,
also with the change log update.

2. MODULE_NAME "hid_ntrig - Answer will change it back to ÂntrigÂ, as
it was in the first patch submitted.

3. N-trig application (Propriety IP) analyze (math algorithms) the
information received from the driver
into real touch event. Events like fake fingers, frame index , generic
byte, palm
Is frame index any more than a checksum?

Still haven't explained what you mean by "fake fingers". Its not clear what they have to do with the user space. And its really unclear why you bother with extra computation and an extra field in the kernel driver. The only place in the kernel code you actually be replaced with "real_fingers == 0", or "real_fingers == 1".

used by the application in parsing the events received from the driver
(firmware)
into real fingers, pen events.

What purpose do the Proprietary IP algorithms serve? I suspect you will find a lot of resistance to adopting closed portions of your drivers unless they actually serve a novel purpose that isn't readily available with obvious or pre-existing algorithms. Finger tracking, noise/ghost elimination and suppression and many other analytic operations you could perform to clean up the behavior are already well known. What else to do you plan to offer?

4. Our driver support N-trig old firmware but we will supply a Firmware
upgrade (MTM)
version in order to user to enjoy the full multi-touch experience.

Glad to hear it.

5. Later we will be evolved with the X11 development.
6. You still haven't actually established why itÂs necessary to fuss
with pen events if we split the pen off to a separate input device - We
need to separate Pen from Finger to allow our user space application to
analyze Pen and Touch events

I'm confused, you do want to split pen and touch? Cause you took out the line of code that does that. Do you perchance have the multiple input quirk set in hid-quirks.c? I was thinking of moving it there at some point soon. The patch you sent in did not split the two streams to separate input devices when I tried it.

7. case HID_DG_CONTACTID - At develop stage we used USB analyzer and
gizmod tool and we didn't see any problem using case HID_DG_CONTACTID.

Please clarify. I have not seen any protocol issues with it, just that the values are incorrect. Is this just the result of a single buggy firmware? On my screen, contact 0 is the lowest finger, and changes when I move my fingers up and down (y+/y-) along the screen. (If you send firmware version code, I'll send the version of firmware I'm using, its from the 2.172 bundle).

8. Even if you want to argue that you need to pull the multi-input
quirk, that doesn't justify pulling the names. Perhaps you may wish to
truncate the name to "N-Trig" or something. But give them some name.
Those names simplify driver correlation in user space. In kernel 2.6.31
- I got kernel panic, will put it in the next release.

Yes, that's my bad, there should be a guard before the switch:
list_for_each_entry(hidinput, &hdev->inputs, list) {
input = hidinput->input;
+ if(hidinput->report->maxfield > 0)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/