aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/mouse/alps.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2012-05-10Input: ALPS - switch to using input_mt_report_finger_countDmitry Torokhov1-8/+2
Instead of open-coded reporting number of fingers on the touchpad let's use input_mt_report_finger_count() helper. Acked-by: Seth Forshee <seth.forshee@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2012-05-10Input: ALPS - add semi-MT support for v4 protocolGeorge Pantalos1-6/+73
This patch adds semi-MT support for ALPS v4 protocol touchpads. It is based on the work by Seth Forshee for ALPS v3 and v4 protocol support. Three packets are required to assemble and process the MT data. ST events are reported at once to avoid latency. If there were two contacts or more, report MT data instead of ST events. Thanks to Seth Forshee for providing most of the code, guidance and insight for producing this patch. Signed-off-by: George Pantalos <gpantalos@gmail.com> Acked-by: Seth Forshee <seth.forshee@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2012-02-24Input: ALPS - fix touchpad detection when buttons are pressedAkio Idehara1-2/+5
ALPS touchpad detection fails if some buttons of ALPS are pressed. The reason is that the "E6" query response byte is different from what is expected. This was tested on a Toshiba Portege R500. Cc: stable <stable@vger.kernel.org> Signed-off-by: Akio Idehara <zbe64533@gmail.com> Tested-by: Seth Forshee <seth.forshee@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-11-07Input: ALPS - add semi-MT support for v3 protocolSeth Forshee1-19/+214
Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Acked-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-11-07Input: ALPS - add support for protocol versions 3 and 4Seth Forshee1-38/+753
This patch adds support for two ALPS touchpad protocols not supported currently by the driver, which I am arbitrarily naming version 3 and version 4. Support is single-touch only at this time, although both protocols are capable of limited multitouch support. Thanks to Andrew Skalski, who did the initial reverse-engineering of the v3 protocol. Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Acked-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-11-07Input: ALPS - remove assumptions about packet sizeSeth Forshee1-5/+5
In preparation for version 4 protocol support, which has 8-byte data packets, remove all hard-coded assumptions about packet size and use psmouse->pktsize instead. Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Acked-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-11-07Input: ALPS - add protocol version field in alps_model_infoSeth Forshee1-24/+23
In preparation for adding support for more ALPS protocol versions, add a field for the protocol version to the model info instead of using a field in the flags. OLDPROTO and !OLDPROTO are now called version 1 and version 2, repsectively. Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Acked-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-11-07Input: ALPS - move protocol information to DocumentationSeth Forshee1-36/+1
In preparation for new protocol support, move the protocol information currently documented in alps.c to Documentation/input/alps.txt, where it can be expanded without cluttering up the driver. Signed-off-by: Seth Forshee <seth.forshee@canonical.com> Acked-by: Chase Douglas <chase.douglas@canonical.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2011-10-10Input: psmouse - switch to using dev_*() for messagesDmitry Torokhov1-27/+25
This will ensure our reporting is consistent with the rest of the system and we do not refer to obsolete source file names. Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.com> Reviewed-by: JJ Ding <dgdunix@gmail.com> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-05Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds1-1/+0
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: joydev - allow binding to button-only devices Input: elantech - ignore high bits in the position coordinates Input: elantech - allow forcing Elantech protocol Input: elantech - fix firmware version check Input: ati_remote - add some missing devices from lirc_atiusb Input: eeti_ts - cancel pending work when going to suspend Input: Add support of Synaptics Clickpad device Revert "Input: ALPS - add signature for HP Pavilion dm3 laptops" Input: psmouse - ignore parity error for basic protocols
2010-04-20Revert "Input: ALPS - add signature for HP Pavilion dm3 laptops"Dmitry Torokhov1-1/+0
This reverts commit 5e28d8eb68c12eab9c4a47b42ba993a6420d71d3 since the magic knock does not work for this model of the touchpad and the device stays in PS/2 compatibility mode.
2010-04-15Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/inputLinus Torvalds1-0/+1
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: wacom - switch mode upon system resume Revert "Input: wacom - merge out and in prox events" Input: matrix_keypad - allow platform to disable key autorepeat Input: ALPS - add signature for HP Pavilion dm3 laptops Input: i8042 - spelling fix Input: sparse-keymap - implement safer freeing of the keymap Input: update the status of the Multitouch X driver project Input: clarify the no-finger event in multitouch protocol Input: bcm5974 - retract efi-broken suspend_resume Input: sparse-keymap - free the right keymap on error
2010-04-05Input: ALPS - add signature for HP Pavilion dm3 laptopsChase Douglas1-0/+1
Tested by a user running Ubuntu 9.10 in the following bug report. BugLink: http://bugs.launchpad.net/bugs/545307 Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Cc: stable@kernel.org Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-30include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.hTejun Heo1-0/+1
percpu.h is included by sched.h and module.h and thus ends up being included when building most .c files. percpu.h includes slab.h which in turn includes gfp.h making everything defined by the two files universally available and complicating inclusion dependencies. percpu.h -> slab.h dependency is about to be removed. Prepare for this change by updating users of gfp and slab facilities include those headers directly instead of assuming availability. As this conversion needs to touch large number of source files, the following script is used as the basis of conversion. http://userweb.kernel.org/~tj/misc/slabh-sweep.py The script does the followings. * Scan files for gfp and slab usages and update includes such that only the necessary includes are there. ie. if only gfp is used, gfp.h, if slab is used, slab.h. * When the script inserts a new include, it looks at the include blocks and try to put the new include such that its order conforms to its surrounding. It's put in the include block which contains core kernel includes, in the same order that the rest are ordered - alphabetical, Christmas tree, rev-Xmas-tree or at the end if there doesn't seem to be any matching order. * If the script can't find a place to put a new include (mostly because the file doesn't have fitting include block), it prints out an error message indicating which .h file needs to be added to the file. The conversion was done in the following steps. 1. The initial automatic conversion of all .c files updated slightly over 4000 files, deleting around 700 includes and adding ~480 gfp.h and ~3000 slab.h inclusions. The script emitted errors for ~400 files. 2. Each error was manually checked. Some didn't need the inclusion, some needed manual addition while adding it to implementation .h or embedding .c file was more appropriate for others. This step added inclusions to around 150 files. 3. The script was run again and the output was compared to the edits from #2 to make sure no file was left behind. 4. Several build tests were done and a couple of problems were fixed. e.g. lib/decompress_*.c used malloc/free() wrappers around slab APIs requiring slab.h to be added manually. 5. The script was run on all .h files but without automatically editing them as sprinkling gfp.h and slab.h inclusions around .h files could easily lead to inclusion dependency hell. Most gfp.h inclusion directives were ignored as stuff from gfp.h was usually wildly available and often used in preprocessor macros. Each slab.h inclusion directive was examined and added manually as necessary. 6. percpu.h was updated not to include slab.h. 7. Build test were done on the following configurations and failures were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my distributed build env didn't work with gcov compiles) and a few more options had to be turned off depending on archs to make things build (like ipr on powerpc/64 which failed due to missing writeq). * x86 and x86_64 UP and SMP allmodconfig and a custom test config. * powerpc and powerpc64 SMP allmodconfig * sparc and sparc64 SMP allmodconfig * ia64 SMP allmodconfig * s390 SMP allmodconfig * alpha SMP allmodconfig * um on x86_64 SMP allmodconfig 8. percpu.h modifications were reverted so that it could be applied as a separate patch and serve as bisection point. Given the fact that I had only a couple of failures from tests on step 6, I'm fairly confident about the coverage of this conversion patch. If there is a breakage, it's likely to be something in one of the arch headers which should be easily discoverable easily on most builds of the specific arch. Signed-off-by: Tejun Heo <tj@kernel.org> Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
2010-03-13Input: ALPS - fix stuck buttons on some touchpadsMartin Buck1-30/+17
Enable button release event redirection to the device that got the button press not only for touchpads with interleaved protocols, but unconditionally for all Alps touchpads. This is required at least for the touchpads in Dell Inspiron 8200 and Latitude d630. Signed-off-by: Martin Buck <mb-tmp-yvahk-vachg@gromit.dyndns.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09Input: alps - add support for the touchpad on Toshiba Tecra A11-11LThomas Bächler1-0/+2
Signed-off-by: Thomas Bächler <thomas@archlinux.org> Cc: stable@kernel.org Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-15Input: ALPS - add interleaved protocol support (Dell E6x00 series)Sebastian Kapfer1-27/+227
Properly handle version of the protocol where standard PS/2 packets from trackpoint are stuffed into middle (byte 3-6) of the standard ALPS packets when both the touchpad and trackpoint are used together. The patch is based on work done by Matthew Chapman and additional research done by David Kubicek and Erik Osterholm: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/296610 Many thanks to David Kubicek for his efforts in researching fine points of this new version of the protocol, especially interaction between pad and stick in these models. Signed-off-by: Sebastian Kapfer <sebastian_kapfer@gmx.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-12-11Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpadDmitry Torokhov1-0/+11
Relative events are only reported via secondary device therefore device associated with the touchpad should not advertise these capabilities. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-11-20Input: ALPS - add support for touchpads with 4-directional buttonMaxim Levitsky1-35/+65
The touchpad on Acer Aspire 5720, 5520 and some other Aspire models (signature 0x73, 0x02, 0x50) has a button that can be rocked in 4 different directions. Make the driver to generate BTN_0..BTN_3 events in response. The Synaptics driver by default maps BTN_0 and BTN_1 to up and down, so there should be no visible changes with the old setup that generated BTN_FORWARD and BTN_BACK (also mapped to up and down). Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-09-10Input: psmouse - use boolean typeDmitry Torokhov1-8/+12
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-06-11Input: ALPS - handle touchpoints buttons correctlyUlrich Dangel1-4/+9
When pressing any button belonging to the touchpoint, the generated click events don't belong to the touchpoint but to the touchpad. This patch fixes this behaviour, the events will be sent via the correct device, so scrolling with touchpoint is possible. Signed-off-by: Ulrich Dangel <uli@spamt.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2009-05-08Input: ALPS - Dell Latitude D630/D800 have DualPointDmitry Torokhov1-9/+9
Dell Latitude D630/D800 have DualPoint (touchpad plus trackpoint) instead of a simple touchpad and a pass-through port for external PS/2 mouse. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2009-04-23Input: ALPS - add signature for Toshiba Satellite Pro M10Dmitry Torokhov1-0/+1
This toshiba has a touchpad with trackpoint and 2 sets of left and right buttons (above and below touchpad). Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-09-10Input: ALPS - add signature for DualPoint found in Dell Latitude E6500Elvis Pranskevichus1-0/+1
Signed-off-by: Elvis Pranskevichus <el@prans.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-03-18Input: ALPS - fix forward/back buttons reversed on Acer 5520-5290Laszlo Kajan1-2/+2
ALPS_FW_BK_1 protocol flavor seems to have forward and backward keys reversed. Signed-off-by: Laszlo Kajan <kajla@bioinfo.pl> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-03-18Input: ALPS - put secondary device in proper place in sysfsDmitry Torokhov1-0/+1
Secondary input device did not have parent set up causing it to appear in the root of sysfs device hierarchy. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-17Input: ALPS - fix sync loss on Acer Aspire 5720ZGDmitry Torokhov1-1/+1
The recently added support for Dell Volstro 1400 was causing protocol synchronization errors on Acer Aspire 5720ZG, fix it. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2007-10-19get rid of input BIT* duplicate definesJiri Slaby1-12/+14
get rid of input BIT* duplicate defines use newly global defined macros for input layer. Also remove includes of input.h from non-input sources only for BIT macro definiton. Define the macro temporarily in local manner, all those local definitons will be removed further in this patchset (to not break bisecting). BIT macro will be globally defined (1<<x) Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: <dtor@mail.ru> Acked-by: Jiri Kosina <jkosina@suse.cz> Cc: <lenb@kernel.org> Acked-by: Marcel Holtmann <marcel@holtmann.org> Cc: <perex@suse.cz> Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: <vernux@us.ibm.com> Cc: <malattia@linux.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-11Input: ALPS - add signature for ThinkPad R61Dmitry Torokhov1-0/+1
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2007-09-05Input: ALPS - add support for model found in Dell Vostro 1400William Pettersson1-0/+1
Signed-off-by: William Pettersson <william.pettersson@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2007-05-22Input: ALPS - force stream modeDmitry Torokhov1-27/+31
ALPS appears to need SETSTREAM command after reset, otherwise it does not produce any data. Now that we do not request stream mode by default individual drivers need to take care of it. [Jason Riedy <ejr@cs.berkeley.edu> - fix oops] Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2007-04-12Input: ALPS - handle errors from input_register_device()Dmitry Torokhov1-4/+9
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-10-05IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells1-6/+4
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
2006-09-10Input: constify psmouse driverHelge Deller1-4/+4
Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-06-26Input: fix potential overflows in driver/input/mouseDmitry Torokhov1-1/+1
Change all sprintfs into snprintfs to make sure we won't stomp on data adjacent to our buffers. Noticed by Wouter Paesen <wouter@kangaroot.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-05-29Input: alps - fix old protocol decodingYotam Medini1-2/+2
Correct touchpad left & right keys assignments for ALPS_OLDPROTO that were swapped. Old protocol is used on UMAX ActionBook-530T notebook. Signed-off-by: Yotam Medini <yotam.medini@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2006-01-14Input: psmouse - attempt to re-synchronize mouse every 5 secondsDmitry Torokhov1-0/+38
This should help driver to deal vith KVMs that reset mice when switching between boxes. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-21Input: ALPS - add signature for HP ze1115Larry Finger1-0/+1
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-12-14[PATCH] Input: ALPS - correctly report button presses on Fujitsu Siemens S6010Vojtech Pavlik1-1/+1
Without this patch Forward and Backward buttons on the touchpad do not generate any events. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-28[PATCH] drivers/input/mouse: convert to dynamic input_dev allocationDmitry Torokhov1-30/+33
Input: convert drivers/input/mouse to dynamic input_dev allocation This is required for input_dev sysfs integration Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2005-09-04Input: ALPS - fix wheel decodingVojtech Pavlik1-1/+1
Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-07-11Input: ALPS - unconditionally enable tapping modePeter Osterlund1-18/+7
The condition in alps_init() was also inverted and the driver was enabling tapping mode only if it was already enabled. Signed-off-by: Peter Osterlund <petero2@telia.com> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-07-11Input: ALPS - fix resume (for DualPoints)David Moore1-2/+2
The driver would not reset pass-through mode when performing resume of a DualPoint touchpad causing it to stop working until next reboot. Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-06-27Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input.git manuallyLinus Torvalds1-21/+31
Some manual fixups required due to clashes with the PF_FREEZE cleanups.
2005-06-16[PATCH] ALPS: fix enabling hardware tappingDmitry Torokhov1-1/+1
It looks like logic for enabling hardware tapping in ALPS driver was inverted and we enable it only if it was already enabled by BIOS or firmware. I have a confirmation from one user that the patch below fixes the problem for him and it might be beneficial if we could get it into 2.6.12. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-01Input: add ps2_drain() to libps2 to allow reading and discardingDmitry Torokhov1-2/+1
given number of bytes from device. Change ps2_command to allow using 0 as command ID and actually pass it to the device instead of working as a drain. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-06-01Input: ALPS - fix forward/back buttons on Ahtec laptop.Ivan Casado Ruiz1-8/+21
I have an Ahtec laptop with a ALPS GlidePoint device, with 4 buttons. With Linux hernel 2.6.12rc4 and rc5 I'm unable to use the vertical scroll buttons (BACK and FORWARD). BACK gets detected as BTN_MIDDLE and FORWARD is undetected. I've modified the drivers/input/mouse/alps.c from 2.6.12rc5 and now it works fine! Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-05-29Input: whitespace fixes in drivers/input/mouseDmitry Torokhov1-11/+9
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2005-05-17[PATCH] ALPS resume fixDmitry Torokhov1-0/+2
ALPS needs to be reset for detection to work reliably when reconnecting. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Cc: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-17[PATCH] alps printk tidyAndrew Morton1-1/+1
Make the alps printk output look consistent. Cc: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>