HID: magicmouse: enable Magic Trackpad support
authorChase Douglas <chase.douglas@canonical.com>
Wed, 1 Sep 2010 01:56:23 +0000 (21:56 -0400)
committerJiri Kosina <jkosina@suse.cz>
Fri, 3 Sep 2010 16:20:47 +0000 (18:20 +0200)
commita462230e16acc8664145216da3c928d03556691a
treec6c4464789f324d8bee320bcacf253fdcf51f166
parent6de048bf1dd2ad35fe9b2326bf9d6d23fb2fff7a
HID: magicmouse: enable Magic Trackpad support

The trackpad speaks a similar, but different, protocol from the magic
mouse. However, only small code tweaks here and there are needed to make
basic multitouch work.

Extra logic is required for single-touch emulation of the touchpad. The
changes made here take the approach that only one finger may emulate the
single pointer when multiple fingers have touched the screen. Once that
finger is raised, all touches must be raised before any further single
touch events can be sent.

Sometimes the magic trackpad sends two distinct touch reports as one big
report. Simply splitting the packet in two and resending them through
magicmouse_raw_event ensures they are handled properly.

I also added myself to the copyright statement.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Acked-by: Michael Poole <mdpoole@troilus.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-magicmouse.c