Single-pointer, mouse-based interfaces may be with us for a while yet, but
much of the interesting user-interface development activity these days
involves multitouch interfaces - those which can track multiple input
position events simultaneously. Multitouch can be found on a number of
touchscreen-based smartphones and on some trackpad-based laptops. There's
also a lot of interesting potential for multitouch in other places - think
about multiple people working on a table-size (or wall-size) display. At
the bottom level, though, detecting multitouch events requires support from
the hardware, and, for a number of touchpad-based systems, that hardware
comes from Synaptics.
The Linux driver for Synaptics touchpads does not currently support multitouch
mode for the usual reason: Synaptics has not deigned to tell the world how
to actually use its hardware. There is hope for change, though: Chase Douglas has
recently posted a set of Synaptics
driver patches which add touchpad support based on information obtained
through reverse engineering. There are evidently still a few glitches to
work out, but the mode appears to work. Alas, that does not necessarily
mean we'll have
Synaptics multitouch support in the near future; the real
difficulties may be outside of the technical realm.
When Chase posted his patches, Takashi Iwai - better known for his ALSA
sound driver work - responded that he had
also worked on multitouch support:
Great! Finally someone found it out! I found this and made a
series of patches in 4 months ago. Since then, Novell legal
prohibited me to send the patches to the upstream due to "possible
patent infringing". Now you cracked out. Yay.
In the ensuing discussion, it became clear that Chase's patch was, in fact,
Takashi's patch with some improvements added. Takashi had apparently
posted the patch set once before Novell legal called a halt to the
exercise; that work had been stashed in a Launchpad page
until Chase stumbled across it, made some improvements, and resubmitted the
code. (Just to be clear: it does not appear that Chase was trying to take
credit for somebody else's work; he just hadn't understood the original
source of the code).
Evidently, Takashi sees the independent posting of the code as being
sufficient to get around Novell legal's objections to its merging; he
responded with enthusiasm despite being allegedly on vacation. Chase's
kernel patches have been topped up with a
series of X.org patches taking advantage of the new kernel support and
adding user-level support for nice things like three-finger and "pinch"
gestures. All of this code has seemingly been waiting for its chance to
escape into the wild; all it took was for somebody else to start pushing
the kernel-side code.
So it seems that the floodgates are open and multitouch support on
Synaptics devices will be available to all. But there could yet be a
catch. As Chase noted: "If you're
the originator of the work, and my patch is accepted, I think we'll need
your SOB on it." Without a signoff from Takashi, this code may not
be accepted into the mainline. Takashi has suggested that his signoff from
the initial posting could be used, but he appears to be unwilling to repost
the code with a signoff now.
And that's where the trouble could come: your editor has had no contact with
Novell's legal department and has no special knowledge, but it would not be
surprising to learn that the concerns that department had about this code
might not be
swept aside quite so easily. It's possible that the new signoff
from Takashi might not be forthcoming. Or, possibly, distributors will get
cold feet for the same reason that Novell legal did and decide not to
enable the feature. This code has been in the wild for some months now,
but it has not found its way into users' systems; the increasing attention
being paid to it now may not be enough to change that fact.
The inability to use Takashi's code - if, indeed, it comes to that - would
not be a huge problem. The important thing is the information on how the
hardware works; given that, some energetic hacker would undoubtedly
reimplement the changes in short order. Patent concerns could be harder to
work around, though. Without knowledge of which patents were at issue,
it's hard to say how big an obstacle they could be. By some accounts,
multitouch interfaces in general are patented, though that does not seem to
have stopped some companies from incorporating such interfaces into their
products. If it stops nervous Linux distributors, though, Linux users as a
whole will be the losers.
That, of course, is the nature of the software patent system. But the
scenario described above is highly speculative at this point. The
important thing is that the code (along with the associated hardware
information) is out there and available for those who
would incorporate it into their systems. Hopefully it will be more widely
distributed soon. Unfortunately, the wait for those nice nice wall-size
displays may be just a little bit longer.
to post comments)