aboutsummaryrefslogtreecommitdiff
path: root/drivers/input
AgeCommit message (Collapse)AuthorFilesLines
2011-10-05Input: wacom - make LED status readable through sysfsPing Cheng1-1/+8
Reviewed-by: Eduard Hasenleithner <[email protected]> Tested-by: Eduard Hasenleithner <[email protected]> Signed-off-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-10-05Input: wacom - add LED support for Cintiq 21ux2Ping Cheng2-30/+78
Cintiq 21ux2 has two sets of four LEDs on right and left side of the tablet, respectively. Reviewed-by: Eduard Hasenleithner <[email protected]> Tested-by: Eduard Hasenleithner <[email protected]> Signed-off-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-10-05Input: wacom - don't expose LED inactive optionPing Cheng1-3/+3
The LED also indicates the status of the tablet. Don't turn it off. Reviewed-by: Eduard Hasenleithner <[email protected]> Tested-by: Eduard Hasenleithner <[email protected]> Signed-off-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-10-05Input: wacom - lower the LED luminancePing Cheng1-1/+1
The LED luminance level is normally lower when no button is pressed. Reviewed-by: Eduard Hasenleithner <[email protected]> Tested-by: Eduard Hasenleithner <[email protected]> Signed-off-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-10-04Input: wacom - revert "Cintiq 21UX2 does not have menu strips"Jason Gerecke1-5/+2
This reverts commit 71c86ce59791bcd67af937bbea719a508079d7c2. The 21UX2 does have touchstrips, but they are in a somewhat- hidden location. Signed-off-by: Jason Gerecke <[email protected]> Acked-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-28Input: add a driver for TSC-40 serial touchscreenSebastian Andrzej Siewior3-0/+197
This patch adds the TSC-40 serial touchscreen driver and should be compatible with TSC-10 and TSC-25. The driver was written by Linutronix on behalf of Bachmann electronic GmbH. Signed-off-by: Sebastian Andrzej Siewior <[email protected]> Signed-off-by: Christian Gmeiner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-27doc: fix broken referencesPaul Bolle1-1/+1
There are numerous broken references to Documentation files (in other Documentation files, in comments, etc.). These broken references are caused by typo's in the references, and by renames or removals of the Documentation files. Some broken references are simply odd. Fix these broken references, sometimes by dropping the irrelevant text they were part of. Signed-off-by: Paul Bolle <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
2011-09-22[media] move ati_remote driver from input/misc to media/rcAnssi Hannula3-884/+0
The driver will be migrated to the RC driver API in a following commit. [[email protected]: Fix some bad whitespacing] Signed-off-by: Anssi Hannula <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2011-09-20Input: gpio_keys - use of_property_read_u32()Tobias Klauser1-11/+13
Use the of_property_read_u32() helper function to retrieve u32 values from the device tree. Also do not pass the len parameter to of_get_property if it isn't checked afterwards. Signed-off-by: Tobias Klauser <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: penmount - simplify unregister procedureDmitry Torokhov1-4/+4
Since touchscreen driver does not handle any events to be sent to the device we can close serio port first and then unregister the input device. Tested-by: John Sung <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: penmount - rework handling of different protocolsDmitry Torokhov1-56/+64
Instead of having one large switch based on product ID use pointer to function actually doing protocol decoding. Tested-by: John Sung <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: penmount - add PenMount 6250 supportJohn Sung1-0/+23
Add multi touch support for PenMount 6250 touch controller. Signed-off-by: John Sung <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: penmount - add PenMount 3000 supportJohn Sung1-4/+75
Add dual touch support for PenMount 3000 touch controller. Signed-off-by: John Sung <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: penmount - add PenMount 6000 supportJohn Sung1-8/+57
Add support for PenMount 6000 touch controller. Signed-off-by: John Sung <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: penmount - fix the protocolJohn Sung1-6/+8
The MSB and LSB of the XY axis value are switched according to the PenMount 9000 protocol. The driver name is also changed from penmountlpc, since it is not for LPC interface at all. Signed-off-by: John Sung <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: elantech - remove module parameter force_elantechJJ Ding1-10/+2
This essentially reverts commit f81bc788ff91d4efd4baf88b2c29713838caa8e5. With recent work on elantech driver, I believe we now have complete support for all elantech touchpads. So remove this hack. Signed-off-by: JJ Ding <[email protected]> Reviewed-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-20Input: elantech - better support all those v2 variantsJJ Ding2-5/+42
V2 hardware has many variants. This patch adddresses two issues: - some model also has debounce packets, but with a different signature than v3. Now we just check debounce for all v2 hardware. - due to different scanning methods the hardware uses, x and y ranges have to be calculated differently. And for some specific versions, we can just see them as custom-made, so set {x, y} the same values as Windows driver does. Signed-off-by: JJ Ding <[email protected]> Tested-by: Richard Schütz <[email protected]> Reviewed-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-19Input: twl6040-vibra: Use accessor to get revision informationPeter Ujfalusi1-1/+1
Signed-off-by: Peter Ujfalusi <[email protected]> Acked-by: Dmitry Torokhov <[email protected]> Acked-by: Liam Girdwood <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2011-09-16Merge branch 'for-linus' of git://github.com/dtor/inputLinus Torvalds6-26/+58
* 'for-linus' of git://github.com/dtor/input: Input: wacom - fix touch parsing on newer Bamboos Input: bcm5974 - add MacBookAir4,1 trackpad support Input: wacom - add POINTER and DIRECT device properties Input: adp5588-keys - remove incorrect modalias Input: cm109 - fix checking return value of usb_control_msg Input: wacom - advertise BTN_TOOL_PEN and BTN_STYLUS for PenPartner Input: wacom - remove pressure for touch devices
2011-09-12Input: wacom - fix touch parsing on newer BamboosChris Bagwell1-6/+8
Bamboos with Product ID's > 0xD4 return values unrelated to pressure in touch 1 pressure field. They also report 2nd touch X/Y values shifted down 1 byte (where pressure was). This results in jumpy 1 finger touch and totally invalid 2nd finger data. For touch detection, switch to a Touch Present single bit that all versions of Bamboo support. For touch 2 offset, calculate offset based on a bit that is set different between the two packet layouts. Since touch pressure reports were removed from driver, there was no need to be reading pressure any more. Signed-off-by: Chris Bagwell <[email protected]> Reviewed-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: bcm5974 - add MacBookAir4,1 trackpad supportPieter-Augustijn Van Malleghem1-0/+20
This patch adds trackpad support for the MacBookAir4,1, released in July 2011. It is very similar to the MacBookAir4,2 patch submitted by Joshua Dillon and Chase Douglas. Signed-off-by: Pieter-Augustijn Van Malleghem <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - add v4 hardware supportJJ Ding2-16/+262
v4 hardware is a true multitouch capable touchpad (up to 5 fingers). The packet format is quite complex, please see protocol document for reference. Signed-off-by: JJ Ding <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - add v3 hardware supportJJ Ding2-19/+201
v3 hardware's packet format is almost identical to v2 (one/three finger touch), except when sensing two finger touch, the hardware sends 12 bytes of data. Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - clean up elantech_initJJ Ding1-30/+39
Group property setting code into elantech_set_properties. Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - packet checking for v2 hardwareJJ Ding1-5/+34
For v2 hardware, there is no real parity check, but we can still check some constant bits for data integrity. Also rename elantech_check_parity_v1 to elantech_packet_check_v1 to make these packet checking function names consistent. Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - remove ETP_EDGE_FUZZ_V2JJ Ding1-9/+6
Don't try to be too clever and remove ETP_EDGE_FUZZ_V2. X, Y ranges should be just the raw resolution of the device. Otherwise, they can cause underflow on the Y axis. Suggested-by: Éric Piel <[email protected]> Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - use firmware provided x, y rangesJJ Ding2-16/+58
With newer hardware, the touchpad provides range info. Let's use it. Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - get rid of ETP_2FT_* in elantech.hJJ Ding2-26/+13
For two finger touches the coordinate of each finger gets reported separately but with reduced resolution. With this change, we now have the same range for ST and MT data and scale MT data because it has lower resolution to match ST. Suggested-by: Dmitry Torokhov <[email protected]> Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: elantech - correct x, y value range for v2 hardwareJJ Ding1-4/+4
x, y values are actually 12-bit long. Also update protocol document to reflect the change. Signed-off-by: JJ Ding <[email protected]> Acked-by: Daniel Kurtz <[email protected]> Acked-by: Éric Piel <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: twl6040-vibra - fix compiler warningRandy Dunlap1-1/+1
Fix warning from Geert's build summary emails by changing "if" to "ifdef". Thsi should fix the following: drivers/input/misc/twl6040-vibra.c:231:5: warning: "CONFIG_PM_SLEEP" is not defined Builds cleanly with CONFIG_PM_SLEEP enabled or disabled. Signed-off-by: Randy Dunlap <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: tegra-kbc - tighten lockingDmitry Torokhov1-19/+12
Take spinlock when entering ISR and timer routine to ensure that we do not race while enabling/disabling FIFO interrupts. Also we do not need to take teh spinlock in tegra_kbc_startremove() since interrupt is completely disabled. Tested-by: Rakesh Iyer <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-09Input: tegra-kbc - fix wakeup from suspendRakesh Iyer1-15/+43
For wakeup to be reliable, kbc needs to be in interrupt mode before suspend. Created common routine to control the FIFO interrupt. Added synchronization to ensure orderly suspend. Signed-off-by: Rakesh Iyer <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-08Input: tc3589x-keypad - fix section mismatch warningHarvey Yang1-1/+1
WARNING: drivers/input/keyboard/built-in.o(.text+0xb55b): Section mismatch in reference from the function tc3589x_keypad_open() to the function .devinit.text:tc3589x_keypad_init_key_hardware() The function tc3589x_keypad_open() references the function __devinit tc3589x_keypad_init_key_hardware(). This is often because tc3589x_keypad_open lacks a __devinit annotation or the annotation of tc3589x_keypad_init_key_hardware is wrong. Signed-off-by: Harvey Yang <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-08Input: wacom - add POINTER and DIRECT device propertiesJason Gerecke2-1/+26
Adds INPUT_PROP_POINTER or INPUT_PROP_DIRECT as necessary to the hardware supported by the Wacom driver. The DIRECT property is assigned to devices with an embedded screen (i.e. touchscreens and display tablets). The POINTER property is assigned to those without embedded screens. Signed-off-by: Jason Gerecke <[email protected]> Reviewed-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-07Input: remove IRQF_DISABLED from driversYong Zhang19-20/+19
This flag is a NOOP and can be removed now. Signed-off-by: Yong Zhang <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-07Input: wacom - add Intuos4 LED and OLED controlEduard Hasenleithner2-30/+277
This commit enables control of the LEDs and OLED displays found on the Wacom Intuos4 M, L, and XL. For this purpose, a new "wacom_led" attribute group is added to the sysfs entry of the USB device. This "wacom_led" group only shows up when the correct device (M, L, or XL) is detected. The attributes are described in Documentation/ABI/testing/sysfs-wacom Signed-off-by: Eduard Hasenleithner <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-09-07Merge commit 'v3.1-rc4' into nextDmitry Torokhov32-176/+718
2011-08-26Input: adp5588-keys - remove incorrect modaliasAxel Lin1-1/+0
For i2c drivers, we should use "i2c:" prefix for modalias. MODULE_DEVICE_TABLE will setup the modulalias for us, thus adding a MODULE_ALIAS is redundant (in addition to being incorrect). Signed-off-by: Axel Lin <[email protected]> Acked-by: Michael Hennerich <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-26Input: tsc2007 - add open and close methodsDmitry Torokhov1-8/+38
This will ensure that the device delivers input events only when there are users. Tested-by: Thierry Reding <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-26Input: tsc2007 - convert to threaded IRQDmitry Torokhov1-84/+66
Instead of using hard IRQ and workqueue solution switch to using threaded interrupt handler to simplify the code and locking rules. Tested-by: Thierry Reding <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-26Input: cm109 - fix checking return value of usb_control_msgaxel lin1-1/+1
If successful, usb_control_msg returns the number of bytes transferred, otherwise a negative error number. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-26Input: wacom - advertise BTN_TOOL_PEN and BTN_STYLUS for PenPartnerJason Gerecke1-2/+2
The Wacom PenPartner should advertise its stylus tip and button in addition to the eraser tool. These are both physically present on the hardware, and emitted from 'wacom_penpartner_irq'. Signed-off-by: Jason Gerecke <[email protected]> Reviewed-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-26Input: wacom - remove pressure for touch devicesPing Cheng2-17/+3
Touch devices do not report valid pressure or capacitance. Signed-off-by: Ping Cheng <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-24Merge branch 'for-linus' of ↵Linus Torvalds15-145/+241
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: ad714x - read the interrupt status registers in a row Input: ad714x - use DMA-safe buffers for spi_write() Input: ad714x - fix endianness issues Input: ad714xx-spi - force SPI bus into the default 8-bit mode Input: ep93xx_keypad - add missing include of linux/module.h Input: tnetv107x-ts - add missing include of linux/module.h Input: max11801_ts - correct license statement Input: atmel_mxt_ts - report pressure information from the driver Input: bcm5974 - Add support for newer MacBookPro8,2 Input: wacom - report id 3 returns 4 bytes of data Input: wacom - add WAC_MSG_RETRIES define Input: wacom - add support for the Wacom Bamboo Pen (CTL-660/K) Input: tegra-kbc - correct call to input_free_device Input: mpu3050 - correct call to input_free_device Input: bcm5974 - add support for touchpads found in MacBookAir4,2 Input: mma8450 - fix module device table type Input: remove CLOCK_TICK_RATE from analog joystick driver
2011-08-23Input: ad714x-i2c - change placement of __init/__exit annotationsWanlong Gao1-2/+2
Change the placement of __init and __exit annotations to be consistent with the rest of the drivers. Signed-off-by: Wanlong Gao <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-23Input: synaptics - process finger (<=5) transitionsDaniel Kurtz1-1/+44
Synaptics image sensor touchpads track up to 5 fingers, but only report 2. They use a special "TYPE=2" (AGM-CONTACT) packet type that reports the number of tracked fingers and which finger is reported in the SGM and AGM packets. With this new packet type, it is possible to tell userspace when 4 or 5 fingers are touching. Signed-off-by: Daniel Kurtz <[email protected]> Acked-by: Chase Douglas <[email protected]> Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-23Input: add BTN_TOOL_QUINTTAP for reporting 5 fingers on touchpadDaniel Kurtz1-0/+1
"4-finger scroll" is a gesture supported by some applications and operating systems. "Resting thumb" is when a clickpad user rests a finger (e.g., a thumb), in a "click zone" (typically the bottom of the touchpad) in anticipation of click+move=select gestures. Thus, "4-finger scroll + resting thumb" is a 5-finger gesture. To allow userspace to detect this gesture, we send BTN_TOOL_QUINTTAP. Signed-off-by: Daniel Kurtz <[email protected]> Acked-by: Chase Douglas <[email protected]> Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-23Input: synaptics - process finger (<=3) transitionsDaniel Kurtz2-16/+278
Synaptics image sensor touchpads track 5 fingers, but only report 2. This patch attempts to deal with some idiosyncrasies of these touchpads: * When there are 3 or more fingers, only two are reported. * The touchpad tracks the 5 fingers in slot[0] through slot[4]. * It always reports the lowest and highest valid slots in SGM and AGM packets, respectively. * The number of fingers is only reported in the SGM packet. However, the number of fingers can change either before or after an AGM packet. * Thus, if an SGM reports a different number of fingers than the last SGM, it is impossible to tell whether the intervening AGM corresponds to the old number of fingers or the new number of fingers. * For example, when going from 2->3 fingers, it is not possible to tell whether tell AGM contains slot[1] (old 2nd finger) or slot[2] (new 3rd finger). * When fingers are added one at at time, from 1->2->3, it is possible to track which slots are contained in the SGM and AGM packets: 1 finger: SGM = slot[0], no AGM 2 fingers: SGM = slot[0], AGM = slot[1] 3 fingers: SGM = slot[0], AGM = slot[2] * It is also possible to track which slot is contained in the SGM when 1 of 2 fingers is removed. This is because the touchpad sends a special (0,0,0) AGM packet whenever all fingers are removed except slot[0]: Last AGM == (0,0,0): SGM contains slot[1] Else: SGM contains slot[0] * However, once there are 3 fingers, if exactly 1 finger is removed, it is impossible to tell which 2 slots are contained in SGM and AGM. The (SGM,AGM) could be (0,1), (0,2), or (1,2). There is no way to know. * Similarly, if two fingers are simultaneously removed (3->1), then it is only possible to know if SGM still contains slot[0]. * Since it is not possible to reliably track which slot is being reported, we invalidate the tracking_id every time the number of fingers changes until this ambiguity is resolved when: a) All fingers are removed. b) 4 or 5 fingers are touched, generates an AGM-CONTACT packet. c) All fingers are removed except slot[0]. In this special case, the ambiguity is resolved since by the (0,0,0) AGM packet. Behavior of the driver: When 2 or more fingers are present on the touchpad, the kernel reports up to two MT-B slots containing the position data for two of the fingers reported by the touchpad. If the identity of a finger cannot be tracked when the number-of-fingers changes, the corresponding MT-B slot will be invalidated (track_id set to -1), and a new track_id will be assigned in a subsequent input event report. The driver always reports the total number of fingers using one of the EV_KEY/BTN_TOOL_*TAP events. This could differ from the number of valid MT-B slots for two reasons: a) There are more than 2 fingers on the pad. b) During ambiguous number-of-fingers transitions, the correct track_id for one or both of the slots cannot be determined, so the slots are invalidated. Thus, this is a hybrid singletouch/MT-B scheme. Userspace can detect this behavior by noting that the driver supports more EV_KEY/BTN_TOOL_*TAP events than its maximum EV_ABS/ABS_MT_SLOT. Signed-off-by: Daniel Kurtz <[email protected]> Acked-by: Chase Douglas <[email protected]> Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-23Input: synaptics - decode AGM packet typesDaniel Kurtz2-7/+43
A Synaptics image sensor tracks 5 fingers, but can only report 2. The algorithm for choosing which 2 fingers to report and in which packet: Touchpad maintains 5 slots, numbered 0 to 4 Initially all slots are empty As new fingers are detected, assign them to the lowest available slots The touchpad always reports: SGM: lowest numbered non-empty slot AGM: highest numbered non-empty slot, if there is one In addition, these touchpads have a special AGM packet type which reports the number of fingers currently being tracked, and which finger is in each of the two slots. Unfortunately, these "TYPE=2" packets are only used when more than 3 fingers are being tracked. When less than 4 fingers are present, the 'w' value must be used to track how many fingers are present, and knowing which fingers are being reported is much more difficult, if not impossible. Signed-off-by: Daniel Kurtz <[email protected]> Acked-by: Chase Douglas <[email protected]> Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-08-23Input: synaptics - add image sensor supportDaniel Kurtz2-17/+110
Synaptics makes (at least) two kinds of touchpad sensors: * Older pads use a profile sensor that could only infer the location of individual fingers based on the projection of their profiles onto row and column sensors. * Newer pads use an image sensor that can track true finger position using a two-dimensional sensor grid. Both sensor types support an "Advanced Gesture Mode": When multiple fingers are detected, the touchpad sends alternating "Advanced Gesture Mode" (AGM) and "Simple Gesture Mode" (SGM) packets. The AGM packets have w=2, and contain reduced resolution finger data The SGM packets have w={0,1} and contain full resolution finger data Profile sensors try to report the "upper" (larger y value) finger in the SGM packet, and the lower (smaller y value) in the AGM packet. However, due to the nature of the profile sensor, they easily get confused when fingers cross, and can start reporting the x-coordinate of one with the y-coordinate of the other. Thus, for profile sensors, "semi-mt" was created, which reports a "bounding box" created by pairing min and max coordinates of the two pairs of reported fingers. Image sensors can report the actual coordinates of two of the fingers present. This patch detects if the touchpad is an image sensor and reports finger data using the MT-B protocol. NOTE: This patch only adds partial support for 2-finger gestures. The proper interpretation of the slot contents when more than two fingers are present is left to later patches. Also, handling of 'number of fingers' transitions is incomplete. Signed-off-by: Daniel Kurtz <[email protected]> Acked-by: Chase Douglas <[email protected]> Acked-by: Henrik Rydberg <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>