Commit graph android_kernel_sony_sdm845/drivers/input/mouse
Message SHA1
Input: ALPS - fix stuck buttons on some touchpads
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>

Martin Buck   authored and   Dmitry Torokhov   commited 2010-03-13 22:37:43 -08:00
c91ed059a0
Input: appletouch - fix integer overflow issue
When reading data from Geyser 2 touchpads used on post Oct 2005 Apple
PowerBooks the driver was casting X and Y coordinates values to
'signed char'. Testing on one of such PowerBooks I have noticed that
touchpad always generates positive values, but some of them are greater
that 127, and thus, when cast to 'signed char' being interpreted as
a negative.

Such bigger values have been observed infrequently, closer to the
edges of a touchpad, so the problem was not very visible.
Nevertheless, the patch would potentially improve touchpad
driver accuracy.

Signed-off-by: Vadim Zaliva <lord@crocodile.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Vadim Zaliva   authored and   Dmitry Torokhov   commited 2010-03-11 00:00:56 -08:00
04b4b88cca
Input: alps - add support for the touchpad on Toshiba Tecra A11-11L
Signed-off-by: Thomas Bächler <thomas@archlinux.org>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Thomas Bächler   authored and   Dmitry Torokhov   commited 2010-03-09 22:06:07 -08:00
eb8bff85c5
Merge branch 'next' into for-linus
Dmitry Torokhov   commited 2010-02-28 23:55:20 -08:00
35858adbfc
Input: psmouse - make sure we don't schedule reconnects after cleanup
Set state of the device as "initializing" during and after cleanup
to ensure that unsolicited data from the device is not passed on.
We especially want to avoid processing new device announcements
"0xaa 0x00" that can come up before we perform reconnect operation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2010-02-07 23:53:41 -08:00
a9f0c38197
Input: lifebook - add another Lifebook DMI signature
There are many many ways one can capitalize "Lifebook B Series"...

Signed-off-by: Jon Dodgson <crayzeejon@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Jon Dodgson   authored and   Dmitry Torokhov   commited 2010-01-28 00:29:03 -08:00
57b5e2ae5b
Merge commit 'v2.6.33-rc5' into next
Dmitry Torokhov   commited 2010-01-21 23:55:25 -08:00
7755726fe9
Input: sentelic - fix left/right horizontal scroll mapping
Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Tai-hwa Liang   authored and   Dmitry Torokhov   commited 2010-01-13 00:28:18 -08:00
c332e9fcc5
Input: pmouse - move Sentelic probe down the list
Sentelic probes confuse IBM trackpoints so they stop responding to
TP_READ_ID command. See:

	http://bugzilla.kernel.org/show_bug.cgi?id=14970

Let's move FSP detection lower so it is probed after trackpoint and
others, just before we strat probing for Intellimouse Explorer.

Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Tai-hwa Liang   authored and   Dmitry Torokhov   commited 2010-01-13 00:28:10 -08:00
4a18b3ab6e
Input: psmouse - fix Synaptics detection when protocol is disabled
For configurations where Synaptics hardware is present but the Synaptics
extensions support is not compiled in, the mouse is reprobed and a new
device is allocated on every suspend/resume.

During probe, psmouse_switch_protocol() calls psmouse_extensions() with
set_properties=1. This calls the dummy synaptics_init() which returns an
error code, instructing us not to use the synaptics extensions.

During resume, psmouse_reconnect() calls psmouse_extensions() with
set_properties=0, in which case call to synaptics_init() is bypassed and
PSMOUSE_SYNAPTICS is returned. Since the result is different from previous
attempt psmouse_reconnect() fails and full re-probe happens.

Fix this by tweaking the set_properties=0 codepath in psmouse_extensions()
to be more careful about offering PSMOUSE_SYNAPTICS extensions.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Daniel Drake   authored and   Dmitry Torokhov   commited 2010-01-07 01:53:30 -08:00
e4e6efd2df
Input: bcm5974 - report ABS_MT events
Make bcm5974 report raw multi-touch (MT) data in the form of ABS_MT events.

[dtor@mail.ru: get rid of module option, always report all events]
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Henrik Rydberg   authored and   Dmitry Torokhov   commited 2010-01-06 00:33:46 -08:00
6f2701b79f
Input: psmouse - remove unused 'autocal' parameter from hgpk protocol
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2010-01-06 00:33:28 -08:00
3032458e38
Input: serio - fix potential deadlock when unbinding drivers
sysfs_remove_group() waits for sysfs attributes to be removed, therefore
we do not need to worry about driver-specific attributes being accessed
after driver has been detached from the device. In fact, attempts to take
serio->drv_mutex in attribute methods may lead to the following deadlock:

                                          sysfs_read_file()
                                            fill_read_buffer()
                                              sysfs_get_active_two()
                                                psmouse_attr_show_helper()
                                                  serio_pin_driver()
serio_disconnect_driver()
  mutex_lock(&serio->drv_mutex);
                                <-------->        mutex_lock(&serio_drv_mutex);
    psmouse_disconnect()
      sysfs_remove_group(... psmouse_attr_group);
        ....
        sysfs_deactivate();
          wait_for_completion();

Fix this by removing calls to serio_[un]pin_driver() and functions themselves
and using driver-private mutexes to serialize access to attribute's set()
methods that may change device state.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Eric W. Biederman   authored and   Dmitry Torokhov   commited 2010-01-06 00:14:32 -08:00
59b015133c
Input: lifebook - add CONFIG_DMI dependency
Lifebook protocol can only be activated if we find known DMI signature.
It is useles without DMI.

Reported-by: Rakib Mullick <rakib.mullick@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-12-29 23:20:22 -08:00
614af4eeb9
Input: psmouse - fix compile warning in hgpk module
The variable 'dev' is unused in function 'hgpk_register'.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

René Bolldorf   authored and   Dmitry Torokhov   commited 2009-12-29 23:20:09 -08:00
c6bde2d9cb
Input: speed up suspend/shutdown for PS/2 mice and keyboards
Instead of doing full-blown reset while suspending or shutting down
the box use lighter form of reset that should take less time.

Tested-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-12-24 21:42:57 -08:00
4a299bf591
Input: ALPS - add interleaved protocol support (Dell E6x00 series)
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>

Sebastian Kapfer   authored and   Dmitry Torokhov   commited 2009-12-15 22:15:25 -08:00
1d9f26262a
Input: ALPS - do not set REL_X/REL_Y capabilities on the touchpad
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>

Dmitry Torokhov   commited 2009-12-11 23:55:23 -08:00
7105d2ea73
Input: psmouse - remove identification strings from DMI tables
The driver does not reference identification strings in DMI tables and
since these strings are no longer required by DMI core we can safely
remove them and save some memory.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-12-04 22:14:43 -08:00
9961e25976
Input: psmouse - do not carry DMI data around
DMI tables use considerable amount of memory. Mark them as __initconst
so they will be discarded once module is loaded.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-12-03 23:25:36 -08:00
7705d548cb
Merge commit 'v2.6.32' into next
Dmitry Torokhov   commited 2009-12-02 23:38:13 -08:00
467832032c
Input: ALPS - add support for touchpads with 4-directional button
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>

Maxim Levitsky   authored and   Dmitry Torokhov   commited 2009-11-20 00:52:13 -08:00
71bb21b677
Input: psmouse - rework setting of BTN_MIDDLE capability
Do not start protocol detection assuming that middle mouse is present,
instead let individual protocols explicitly set this capability.
This fixes issue with Synaptics touchpads pretending that they have
middle button when hardware clearly reports otherwise.

Reported-and-tested-by: Andrey Borzenkov <arvidjaar@mail.ru>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-11-20 00:52:12 -08:00
315eb996d5
Input: lifebook - do not advertise unsupported buttons
The main input device of Lifebook touchscreens does not generate
left/right/middle button events and therefore should not be advertising
them in its capabilities.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-11-20 00:52:12 -08:00
0cc1770b66
Input: elantech - do not advertise relative events
Elantech touchpads work in absolute mode and do not generate relative
events so they should not be advertising them.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-11-20 00:52:11 -08:00
c7a1f3ccfc
Input: touchkit_ps2 - do not advertise unsupported buttons
Touchkit PS/2 touchscreen does not have left/right/middle buttons and
should not be advertising as capable of generating these events.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-11-20 00:52:10 -08:00
21f25573fb
Input: lifebook - fix settings for CF-72
Panasonic CF-72 uses 6-byte protocol and does not need to be tied
to a particular port.

Signed-off-by: Abner Holsinger <9zabner@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Abner Holsinger   authored and   Dmitry Torokhov   commited 2009-11-16 22:27:12 -08:00
b1e69aae77
Input: psmouse - fix breakage introduced by b7802c5c1e
Commit b7802c5c1e ("Input: psmouse - use boolean type") caused the
synaptics_hardware variable to be completely useless, as it is
constantly set to 'true' throughout the whole psmouse_extensions().
This was caused by the following hunk in the commit in question

	-       int synaptics_hardware = 0;
	+       bool synaptics_hardware = true;

which is wrong and causes driver to issue extra reset when falling
back to bare PS/2 protocol.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Jiri Kosina   authored and   Dmitry Torokhov   commited 2009-11-16 22:26:16 -08:00
0698989d77
Input: psmouse - remove unneeded '\n' from psmouse.proto parameter
The get parameter function should return a string without a life-feed.
Otherwise you'll see additional empty line in sysfs parameters file.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Takashi Iwai   authored and   Dmitry Torokhov   commited 2009-11-12 23:31:58 -08:00
3d4c3aa938
Merge commit 'v2.6.32-rc6' into next
Dmitry Torokhov   commited 2009-11-05 23:00:48 -08:00
02cee68998
Input: synaptic_i2c - make unnecessarily global functions static
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-11-02 22:26:18 -08:00
f5ba350236
Input: logips2pp - model 73 is actually TrackMan FX
Reported-and-tested-by: Harald Dunkel <harald.dunkel@t-online.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-10-18 00:03:54 -07:00
4f7802d032
Input: vsxxxaa - change formatting style to match the rest of the kernel
- no spaces between function name and opening parenthesis
 - switch statements were indented too much

This makes checkpatch (and me) happy.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-10-13 23:58:27 -07:00
216023255a
Input: synaptics - add another Protege M300 to rate blacklist
Apparently some of Toshiba Protege M300 identify themselves as
"Portable PC" in DMI so we need to add that to the DMI table as
well. We need DMI data so we can automatically lower Synaptics
reporting rate from 80 to 40 pps to avoid over-taxing their
keyboard controllers.

Tested-by: Rod Davison <roddavison@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-10-12 21:36:52 -07:00
5f5eeff4c9
Input: synaptics_i2c - switch to using __cancel_delayed_work()
cancel_delayed_work() may spin and therefore should not be used in
interrupt contexts.

Acked-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-09-17 23:24:01 -07:00
30b37131aa
Input: libps2 - additional locking for i8042 ports
The serio ports on i8042 are not completely isolated; while we provide
enough locking to ensure proper serialization when accessing control
and data registers AUX and KBD ports can still have an effect on each
other on PS/2 protocol level. The most prominent effect is that
issuing a command for the device connected to one port may cause
abort of the command currently executing by the device connected to
another port.

Since i8042 nor serio subsystem are not aware of the details of the
PS/2 protocol (length of the commands and their replies and so on) the
locking should be done on libps2 level by adding special handling when
we see that we are dealing with serio port on i8042.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-09-17 23:23:45 -07:00
181d683d75
Input: bcm5974 - silence uninitialized variables warnings
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Henrik Rydberg   authored and   Dmitry Torokhov   commited 2009-09-13 09:13:38 -07:00
9de48cc300
Input: psmouse - use boolean type
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-09-10 22:11:38 -07:00
b7802c5c1e
Input: add new driver for Sentelic Finger Sensing Pad
This is the driver for Sentelic Finger Sensing Pad which can be found
on MSI WIND Netbook.

Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Tai-hwa Liang   authored and   Dmitry Torokhov   commited 2009-08-19 21:46:09 -07:00
fc69f4a6af
Input: psmouse - allow defining read-only attributes
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-08-19 21:14:20 -07:00
3b72094409
Input: combine hil_kbd and hil_ptr drivers
hil_kbd and hil_ptr look like twins so it makes sense to combine them
into a single driver.

[deller@gmx.de: add MODULE_ALIAS() entry for mouse]
Tested-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-08-09 13:27:27 -07:00
fa71c605c2
Input: serio - don't use serio->write() directly
We have a nice wrapper for that.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-08-05 00:43:43 -07:00
dd0d5443da
Input: hgpk - forced recalibration for the OLPC touchpad
The OLPC XO laptop incorporates a combination touchpad/tablet device
which unfortunately requires frequent recalibration.  The driver will
force this automatically when various suspicious behaviors are
observed, and the user can recalibrate manually (with a special
keyboard sequence). There's currently no way, however, for an external
program to cause recalibration. We can not use the reconnect
capability which is already available in /sys because full reset of
the touchpad takes 1.1 - 1.2 secons which is too long.

This patch creates a new node in /sys which, when written with '1',
will force a touchpad recalibration; no other writes (or reads)
of this node are supported.

Signed-off-by: Paul Fox <pgf@laptop.org>
Acked-by: Andres Salomon <dilinger@collabora.co.uk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Paul Fox   authored and   Dmitry Torokhov   commited 2009-08-05 00:34:32 -07:00
c46dd1eb9a
Input: gpio_mouse - use standard driver registration method
This patch is needed when the gpio's became available only at late
stages, for example, when using i2c gpio expander.

Signed-off-by: Saeed Bishara <saeed@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Saeed Bishara   authored and   Dmitry Torokhov   commited 2009-07-07 22:47:14 -07:00
eeafa5ef6d
Input: add driver for Synaptics I2C touchpad
This driver supports Synaptics I2C touchpad controller on eXeda
mobile device. Unfortunaltely it only works in relative mode and
thus is not comaptible with Xorg Synaptics driver.

Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Mike Rapoport   authored and   Dmitry Torokhov   commited 2009-06-19 22:56:45 -07:00
eef3e4cab7
Input: synaptics - add support for reporting x/y resolution
Synaptics uses anisotropic coordinate system.  On some wide touchpads
vertical resolution can be twice as high as horizontal which causes
unequal sensitivity on x/y directions.  Add support for reading the
resolution with EVIOCGABS ioctl.

Signed-off-by: Tero Saarni <tero.saarni@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Tero Saarni   authored and   Dmitry Torokhov   commited 2009-06-19 22:55:17 -07:00
ec20a022aa
Input: ALPS - handle touchpoints buttons correctly
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>

Ulrich Dangel   authored and   Dmitry Torokhov   commited 2009-06-11 02:09:45 -07:00
d7ed5d883c
Input: appletouch - improve finger detection
The appletouch driver is prone to reporting multiple fingers when only
one is pressing.  The appletouch driver queries an array of pressure
sensors and counts local maxima in pressure to determine the number of
fingers.  It just does this on the raw values, so a data stream like:

0 100 250 300 299 300 250 100 0

actually registers as 2 fingers.

This patch updates the logic to ignore small dips in pressure that are
less than the threshold.

Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Jeremy Huddleston   authored and   Dmitry Torokhov   commited 2009-06-03 07:37:54 -07:00
05e882f890
Input: psmouse - ESD workaround fix for OLPC XO touchpad
It appears that when the XO touchpad unit resets from ESD, it sends AA
AA instead of AA 00, the psmouse-base code handles the case of AA 00 by
triggering a serio reconnect for the port, causing a full reprobe of
the device.

Testing with OFW shows that this is likely to solve the problem, so
the attached patch simply expands the existing test to also catch AA AA.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Deepak Saxena <dsaxena@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Zephaniah E. Hull   authored and   Dmitry Torokhov   commited 2009-05-15 19:24:18 -07:00
535650fd70
Input: lifebook - don't send incomplete events
When we get a relative packet from trackpoint (when we deal with
touchscreen/trackpoint combo) we should not send events for the device
corresponding to touchscreen as it confuses evtouch driver (it looks
like it keeps previously reported absolute coordinates and the cursor
stays in the same place).

Reported-by: Marcin Drewka <laimoriel@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

Dmitry Torokhov   commited 2009-05-08 18:31:49 -07:00
9b771ac442