openwrt/staging/blogic.git
13 years agoInput: serio - allow registered drivers to get status flag
David Engraf [Fri, 21 Jan 2011 07:05:17 +0000 (23:05 -0800)]
Input: serio - allow registered drivers to get status flag

Parse and pass the status byte information to the registered serio
drivers as well as the data bytes.

Signed-off-by: David Engraf<david.engraf@sysgo.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: ct82710c - return proper error code for ct82c710_open
Davidlohr Bueso [Tue, 18 Jan 2011 04:48:18 +0000 (20:48 -0800)]
Input: ct82710c - return proper error code for ct82c710_open

If request_irq() fails we should return the proper error instead of -1.

Signed-off-by: Davidlohr Bueso <dave@gnu.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: bu21013_ts - added regulator support
Naveen Kumar Gaddipati [Tue, 18 Jan 2011 04:47:31 +0000 (20:47 -0800)]
Input: bu21013_ts - added regulator support

Add regulator support in ROHM BU21013 touch panel driver.

Signed-off-by: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: bu21013_ts - remove duplicate resolution parameters
Naveen Kumar Gaddipati [Tue, 18 Jan 2011 04:40:58 +0000 (20:40 -0800)]
Input: bu21013_ts - remove duplicate resolution parameters

Remove duplicate display resolution parameters from platform data as
one pair is quite enough.

Signed-off-by: Naveen Kumar Gaddipati <naveen.gaddipati@stericsson.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tnetv107x-ts - don't treat NULL clk as an error
Jamie Iles [Tue, 18 Jan 2011 04:40:55 +0000 (20:40 -0800)]
Input: tnetv107x-ts - don't treat NULL clk as an error

We should use IS_ERR() when checking whether clk_get() succeeded or
not since it returns errors by encoding error codes with ERR_PTR().

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tnetv107x-keypad - don't treat NULL clk as an error
Jamie Iles [Tue, 18 Jan 2011 04:40:32 +0000 (20:40 -0800)]
Input: tnetv107x-keypad - don't treat NULL clk as an error

We should use IS_ERR() when checking whether clk_get() succeeded or
not since it returns errors by encoding error codes with ERR_PTR().

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoMerge branch 'next' into for-linus
Dmitry Torokhov [Wed, 12 Jan 2011 06:01:45 +0000 (22:01 -0800)]
Merge branch 'next' into for-linus

13 years agoInput: add SW_ROTATE_LOCK switch type
Jekyll Lai [Wed, 12 Jan 2011 05:53:55 +0000 (21:53 -0800)]
Input: add SW_ROTATE_LOCK switch type

This switch is used to signal that user want to disable screen
transitions from portrait to landscape mode and back.

Signed-off-by: Jekyll Lai <jekyll_lai@wistron.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: fix force feedback capability query example
Alexander Stein [Tue, 11 Jan 2011 09:07:09 +0000 (01:07 -0800)]
Input: fix force feedback capability query example

'features' is a bit array, not byte array

Signed-off-by: Alexander Stein <alexander.stein@informatik.tu-chemnitz.de>
Acked-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom_w8001 - add single-touch support
Ping Cheng [Tue, 11 Jan 2011 09:06:58 +0000 (01:06 -0800)]
Input: wacom_w8001 - add single-touch support

Emulate single-touch compatible events for the 2-finger panels
so that they can be used with single-touch legacy clients.

Assign device ids as Wacom USB vendor ID and product ID.
Name the device to reflect its specific features.

Scale touch coordinates to pen maximum if pen supported.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: add Austria Microsystem AS5011 joystick driver
Fabien Marteau [Mon, 10 Jan 2011 19:01:13 +0000 (11:01 -0800)]
Input: add Austria Microsystem AS5011 joystick driver

This is driver for EasyPoint AS5011 2 axis joystick chip. This chip is
plugged on an I2C bus.

Tested on ARM processor (i.MX27).

Signed-off-by: Fabien Marteau <fabien.marteau@armadeus.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: remove aaed2000 keyboard driver
Jamie Iles [Sat, 8 Jan 2011 09:37:42 +0000 (01:37 -0800)]
Input: remove aaed2000 keyboard driver

The only platform using this driver (mach-aaec2000) is no longer in
the kernel so remove the driver.

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13
Jiri Kosina [Sat, 8 Jan 2011 09:37:26 +0000 (01:37 -0800)]
Input: i8042 - introduce 'notimeout' blacklist for Dell Vostro V13

i8042 controller present in Dell Vostro V13 errorneously signals spurious
timeouts.

Introduce i8042.notimeout parameter for ignoring i8042-signalled timeouts
and apply this quirk automatically for Dell Vostro V13, based on DMI match.

In addition to that, this machine also needs to be added to nomux blacklist.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: cy8ctmg110_ts - Convert to dev_pm_ops
Mark Brown [Fri, 7 Jan 2011 07:01:03 +0000 (23:01 -0800)]
Input: cy8ctmg110_ts - Convert to dev_pm_ops

There is a general move towards the use of dev_pm_ops rather than
bus specific suspend APIs as this simplifies both the bus and PM core
implementations. Convert the cy8ctmg110_ts driver over.

Compile tested only.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: migor_ts - convert to dev_pm_ops
Mark Brown [Fri, 7 Jan 2011 07:01:03 +0000 (23:01 -0800)]
Input: migor_ts - convert to dev_pm_ops

There is a general move towards the use of dev_pm_ops rather than
bus specific suspend APIs as this simplifies both the bus and PM core
implementations. Convert the migor_ts driver over.

Compile tested only.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: mcs5000_ts - convert to dev_pm_ops
Mark Brown [Fri, 7 Jan 2011 07:01:03 +0000 (23:01 -0800)]
Input: mcs5000_ts - convert to dev_pm_ops

There is a general move towards the use of dev_pm_ops rather than
bus specific suspend APIs as this simplifies both the bus and PM core
implementations. Convert the mcs5000_ts driver over.

Compile tested only.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: eeti_ts - convert to dev_pm_ops
Mark Brown [Fri, 7 Jan 2011 07:01:02 +0000 (23:01 -0800)]
Input: eeti_ts - convert to dev_pm_ops

There is a general move towards the use of dev_pm_ops rather than
bus specific suspend APIs as this simplifies both the bus and PM core
implementations. Convert the eeti_ts driver over.

Compile tested only by me, but Sven Neumann reports that the new code
works.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: Sven Neumann <s.neumann@raumfeld.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: ad7879 - convert I2C to dev_pm_ops
Mark Brown [Fri, 7 Jan 2011 07:01:02 +0000 (23:01 -0800)]
Input: ad7879 - convert I2C to dev_pm_ops

There is a general move towards the use of dev_pm_ops rather than
bus specific suspend APIs as this simplifies both the bus and PM core
implementations. Convert the ad7879-ts I2C support over.

Compile tested only.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoMerge branch 'next' into for-linus
Dmitry Torokhov [Fri, 7 Jan 2011 06:34:59 +0000 (22:34 -0800)]
Merge branch 'next' into for-linus

Conflicts:
include/linux/input.h

13 years agoInput: wacom_w8001 - support pen or touch only devices
Ping Cheng [Fri, 24 Dec 2010 21:16:53 +0000 (13:16 -0800)]
Input: wacom_w8001 - support pen or touch only devices

Not all penabled devices support touch. The same holds true for touch
devices, so we should be setting up devices according to the results
returned when we query the hardware.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom_w8001 - use __set_bit to set keybits
Ping Cheng [Fri, 24 Dec 2010 21:13:25 +0000 (13:13 -0800)]
Input: wacom_w8001 - use __set_bit to set keybits

This makes code safer and easier to read.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoMerge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input...
Dmitry Torokhov [Tue, 28 Dec 2010 01:33:20 +0000 (17:33 -0800)]
Merge branch 'next' of git://git./linux/kernel/git/rydberg/input-mt into next

13 years agoInput: bu21013_ts - fix misuse of logical operation in place of bitop
David Sterba [Tue, 28 Dec 2010 01:20:01 +0000 (17:20 -0800)]
Input: bu21013_ts - fix misuse of logical operation in place of bitop

Signed-off-by: David Sterba <dsterba@suse.cz>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: i8042 - add Acer Aspire 5100 to the Dritek list
Pali Rohár [Tue, 28 Dec 2010 01:21:45 +0000 (17:21 -0800)]
Input: i8042 - add Acer Aspire 5100 to the Dritek list

This patch adds notebook Acer Aspire 5100 to the list of Dritek HW. Acer
Aspire 5100 needs Dritek keyboard extension to support all Fn keys.

Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - add support for digitizer in Lenovo W700
Ajay Ramaswamy [Thu, 23 Dec 2010 09:19:39 +0000 (01:19 -0800)]
Input: wacom - add support for digitizer in Lenovo W700

Signed-off-by: Ajay Ramaswamy <ajay@ramaswamy.net>
Reviewed-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: psmouse - disable the synaptics extension on OLPC machines
Andres Salomon [Thu, 23 Dec 2010 09:19:38 +0000 (01:19 -0800)]
Input: psmouse - disable the synaptics extension on OLPC machines

OLPC has switched to a Synaptics touchpad.  It turns out that it's
pretty useless in absolute mode.  This patch looks for an OLPC
system (via DMI tables), and refuses to init Synaptics mode in
that scenario (falling back to relative mode).

Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: psmouse - fix up Synaptics comment
Andres Salomon [Thu, 23 Dec 2010 09:18:28 +0000 (01:18 -0800)]
Input: psmouse - fix up Synaptics comment

Minor comment fixup for typos and grammar. Noticed while adding a
separate workaround.

Signed-off-by: Andres Salomon <dilinger@queued.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: synaptics - ignore bogus mt packet
Henrik Rydberg [Sat, 18 Dec 2010 14:42:30 +0000 (15:42 +0100)]
Input: synaptics - ignore bogus mt packet

In multitouch mode, at least one device (fw: 7.4 id: 0x1c0b1) sometimes
sends a final main packet with x == 1. Since the normal values are above
1472, this is clearly bogus. At the same time, a two-finger touch is
signaled, even though only one finger was on the pad to begin with. This
patch ignores the packet altogether, removing the problem.

Acked-by: Chris Bagwell <chris@cnpbagwell.com>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoInput: synaptics - add multi-finger and semi-mt support
Henrik Rydberg [Tue, 21 Dec 2010 17:11:25 +0000 (18:11 +0100)]
Input: synaptics - add multi-finger and semi-mt support

The Synaptics 2.7 series of touchpads support a mode for reporting two
sets of X/Y/Pressure data (advanced gesture mode). By default, these
devices report only single finger data, depriving userspace of the
nowadays ubiquitous two-finger scroll gesture.

Enabling advanced gesture mode also enables the multi-finger report,
although the device does not claim that capability. Up to three
fingers can be reported this way.

While two or three fingers are touching, the normal packet is
prepended by a reduced finger packet of lower resolution. From the two
packets (which do not represent the actual fingers), the bounding
rectangle of the individual contacts can be extracted.  This
information is sufficient to perform scaling gestures and a limited
form of rotation gesture. The behavior has been coined semi-mt
capability, and is signaled to userspace via the INPUT_PROP_SEMI_MT
device property.

Work to decode the advanced gesture packet: Takashi Iwai.
Cleanup and testing of the original patch: Chase Douglas.
Minor cleanup and testing: Chris Bagwell.
Finalization and semi-mt support: Henrik Rydberg.

Reported-by: Tobyn Bertram
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoInput: synaptics - report clickpad property
Henrik Rydberg [Thu, 16 Dec 2010 08:52:23 +0000 (09:52 +0100)]
Input: synaptics - report clickpad property

With the new input property interface, it is possible to report the
special quirks of a device using ioctl/sysfs. This patch sets up the
device as a pointer, and reports the clickpad functionality via the
INPUT_PROP_BUTTONPAD property.

Acked-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoinput: mt: Document interface updates
Henrik Rydberg [Mon, 20 Dec 2010 14:09:27 +0000 (15:09 +0100)]
input: mt: Document interface updates

This patch documents the recent input-mt interface changes.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoInput: fix double equality sign in uevent
Henrik Rydberg [Sat, 18 Dec 2010 19:28:26 +0000 (20:28 +0100)]
Input: fix double equality sign in uevent

Looking at the uevent stream for input devices, all properties are on
the form "A=B" except the bitmap values, which are on the form
"A==B". This bug has been around at least since 2007, and the input
uevent code has been untouched since. The recent addition of device
properties suggests this is a good time for a remedy.

Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoInput: introduce device properties
Henrik Rydberg [Sat, 18 Dec 2010 19:51:13 +0000 (20:51 +0100)]
Input: introduce device properties

Today, userspace sets up an input device based on the data it emits.
This is not always enough; a tablet and a touchscreen may emit exactly
the same data, for instance, but the former should be set up with a
pointer whereas the latter does not need to. Recently, a new type of
touchpad has emerged where the buttons are under the pad, which
changes logic without changing the emitted data. This patch introduces
a new ioctl, EVIOCGPROP, which enables user access to a set of device
properties useful during setup. The properties are given as a bitmap
in the same fashion as the event types, and are also made available
via sysfs, uevent and /proc/bus/input/devices.

Acked-by: Ping Cheng <pingc@wacom.com>
Acked-by: Chase Douglas <chase.douglas@canonical.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Add support for Wetab (726b)
Andy Ross [Thu, 16 Dec 2010 23:53:19 +0000 (15:53 -0800)]
hid: egalax: Add support for Wetab (726b)

This patch adds support for another Wetab device (726b), and grabs it
accordingly in hid-core.

[rydberg@euromail.se: rename and log message changes]
Signed-off-by: Andy Ross <andy@plausible.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoMerge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rydberg/input...
Dmitry Torokhov [Thu, 16 Dec 2010 17:17:48 +0000 (09:17 -0800)]
Merge branch 'next' of git://git./linux/kernel/git/rydberg/input-mt into next

Conflicts:
drivers/input/Makefile

13 years agoInput: include MT library as source for kerneldoc
Dmitry Torokhov [Thu, 9 Dec 2010 09:08:26 +0000 (01:08 -0800)]
Input: include MT library as source for kerneldoc

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoMAINTAINERS: Update input-mt entry
Henrik Rydberg [Tue, 7 Dec 2010 08:18:28 +0000 (09:18 +0100)]
MAINTAINERS: Update input-mt entry

The input multitouch core is now located in its own file,
and maintained via a git tree. Update the maintainers entry
accordingly.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Add support for Samsung NB30 netbook
Richard Nauber [Tue, 14 Dec 2010 21:36:18 +0000 (22:36 +0100)]
hid: egalax: Add support for Samsung NB30 netbook

The Samsung NB30 touch has a DWAV dual-touch device. This patch adds
the NB30 to the list of supported devices, and grabs it accordingly in
hid-core.

[rydberg@euromail.se: rename and log message changes]
Signed-off-by: Richard Nauber <Richard.Nauber@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Document the new devices in Kconfig
Henrik Rydberg [Mon, 29 Nov 2010 13:40:11 +0000 (14:40 +0100)]
hid: egalax: Document the new devices in Kconfig

Add the new supported devices to the kernel menu config help text.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Add support for Wetab
Henrik Rydberg [Mon, 29 Nov 2010 06:27:49 +0000 (07:27 +0100)]
hid: egalax: Add support for Wetab

The Wetab tablet dual-touch controller works the same way as the one
in the Joojoo tablet. This patch adds the Wetab to the list of
supported devices, and grabs it accordingly in hid-core.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Convert to MT slots
Henrik Rydberg [Mon, 6 Dec 2010 13:04:21 +0000 (14:04 +0100)]
hid: egalax: Convert to MT slots

The firmware in the joojoo reports touches sequentially, one per
report, which confuses the current driver. A further complication is
the absense of any indication of a touch frame. This patch converts
the driver to the MT slots protocol, and outputs one full touch frame
per report. This way, proper handling for both firmwares is ensured.

Tested-by: Philipp Merkel <mail@philmerk.de>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Add event filtering
Henrik Rydberg [Mon, 11 Oct 2010 19:20:51 +0000 (21:20 +0200)]
hid: egalax: Add event filtering

Use estimated signal-to-noise ratios to reduce noise and limit the
amount of events emitted.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Report zero as minimum pressure
Henrik Rydberg [Mon, 11 Oct 2010 19:16:43 +0000 (21:16 +0200)]
hid: egalax: Report zero as minimum pressure

The firmware reports a logical minimum of one, but in order for
userspace applications to correctly map all reported values to
non-zero pressure, the driver needs to report a logical minimum of
zero.  Fixed with this patch.

Tested-by: Philipp Merkel <mail@philmerk.de>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Correct for device resolution report error
Henrik Rydberg [Wed, 13 Oct 2010 20:18:32 +0000 (22:18 +0200)]
hid: egalax: Correct for device resolution report error

The firmware of both supported devices report a X/Y maximum of 4095,
whereas in reality, it is eight times larger. Fixed with this patch.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agohid: egalax: Setup input device manually
Henrik Rydberg [Sat, 27 Nov 2010 16:56:17 +0000 (17:56 +0100)]
hid: egalax: Setup input device manually

The hid core does not yet handle input filtering. Take over the setup
of the input device, so that proper signal-to-noise ratios can be
used.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Cc: Stephane Chatty <chatty@enac.fr>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoinput: mt: Add hovering distance axis
Henrik Rydberg [Mon, 6 Dec 2010 09:05:43 +0000 (10:05 +0100)]
input: mt: Add hovering distance axis

Touch devices capable of hovering, i.e., fingers detected a
distance from the surface, are not supported by the current
input MT protocol. This patch adds ABS_MT_DISTANCE, which may
be used to indicate the distance between the contact and the
surface.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoinput: mt: Move tracking and pointer emulation to input-mt
Henrik Rydberg [Wed, 15 Dec 2010 12:50:34 +0000 (13:50 +0100)]
input: mt: Move tracking and pointer emulation to input-mt

The drivers using the type B protocol all report tracking information
the same way. The contact id is semantically equivalent to
ABS_MT_SLOT, and the handling of ABS_MT_TRACKING_ID only complicates
the driver. The situation can be improved upon by providing a common
pointer emulation code, thereby removing the need for the tracking id
in the driver.  This patch moves all tracking event handling over to
the input core, simplifying both the existing drivers and the ones
currently in preparation.

Acked-by: Ping Cheng <pingc@wacom.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoinput: mt: Collect slots initialization code
Henrik Rydberg [Sat, 27 Nov 2010 09:50:54 +0000 (10:50 +0100)]
input: mt: Collect slots initialization code

The MT slots devices all follow the same initialization pattern
of creating slots and hinting about buffer size. Let drivers call
an initialization function instead, and make sure it can be called
repeatedly without side effects.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoinput: mt: Break out slots handling
Henrik Rydberg [Sat, 27 Nov 2010 08:16:48 +0000 (09:16 +0100)]
input: mt: Break out slots handling

In preparation for common code to handle a larger set of MT slots
devices, move the slots handling over to a separate file.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
13 years agoInput: add ST1232 touchscreen controller driver
Tony SIM [Thu, 16 Dec 2010 07:39:25 +0000 (23:39 -0800)]
Input: add ST1232 touchscreen controller driver

This patch introduces support for Sitronix ST1232 integrated capacitive
touchscreen with LCD module. The touchscreen is multitouch capable and
can report coordinates of up to two contact points.

Signed-off-by: Tony SIM <chinyeow.sim.xt@renesas.com>
Reviewed-by: Trilok Soni <tsoni@codeaurora.org>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: define separate EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2
Dmitry Torokhov [Wed, 15 Dec 2010 07:53:21 +0000 (23:53 -0800)]
Input: define separate EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2

The desire to keep old names for the EVIOCGKEYCODE/EVIOCSKEYCODE while
extending them to support large scancodes was a mistake. While we tried
to keep ABI intact (and we succeeded in doing that, programs compiled
on older kernels will work on newer ones) there is still a problem with
recompiling existing software with newer kernel headers.

New kernel headers will supply updated ioctl numbers and kernel will
expect that userspace will use struct input_keymap_entry to set and
retrieve keymap data. But since the names of ioctls are still the same
userspace will happily compile even if not adjusted to make use of the
new structure and will start miraculously fail in the field.

To avoid this issue let's revert EVIOCGKEYCODE/EVIOCSKEYCODE definitions
and add EVIOCGKEYCODE_V2/EVIOCSKEYCODE_V2 so that userspace can explicitly
select the style of ioctls it wants to employ.

Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Acked-by: Jarod Wilson <jarod@redhat.com>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - add another Bamboo Pen ID (0xd4)
Kevin Granade [Sat, 11 Dec 2010 07:04:02 +0000 (23:04 -0800)]
Input: wacom - add another Bamboo Pen ID (0xd4)

Add the features struct and device table entry to enable yet another
version of Wacom Bamboo Pen (CTL460, Product ID 0xD4).

Signed-off-by: Kevin Granade <kevin.granade@gmail.com>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: cma3000_d0x_i2c - add MODULE_DEVICE_TABLE
Dmitry Torokhov [Wed, 8 Dec 2010 06:11:09 +0000 (22:11 -0800)]
Input: cma3000_d0x_i2c - add MODULE_DEVICE_TABLE

This should allow loading this module automatically on systems that
have such device.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tca6416-keypad - add support for tca6408a
Tony SIM [Tue, 7 Dec 2010 10:54:00 +0000 (02:54 -0800)]
Input: tca6416-keypad - add support for tca6408a

Support 8-bit tca6408a I/O expander as a keypad.

Signed-off-by: Tony SIM <chinyeow.sim.xt@renesas.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - add new Bamboo PT (0xdb)
David Foley [Wed, 8 Dec 2010 05:05:59 +0000 (21:05 -0800)]
Input: wacom - add new Bamboo PT (0xdb)

Adds new Bamboo Pen & Touch model - Bamboo P & T Special Edition
Medium (CTH661/L; Product ID = 0xdb).

Tested-by: Tobias Verbeke <tobias.verbeke@gmail.com>
Signed-off-by: David Foley <favux.is@gmail.com>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: add input driver for polled GPIO buttons
Gabor Juhos [Tue, 7 Dec 2010 01:14:47 +0000 (17:14 -0800)]
Input: add input driver for polled GPIO buttons

The existing gpio-keys driver can be usable only for GPIO lines with
interrupt support. Several devices have buttons connected to a GPIO
line which is not capable to generate interrupts. This patch adds a
new input driver using the generic GPIO layer and the input-polldev
to support such buttons.

[Ben Gardiner <bengardiner@nanometrics.ca: fold code to use more
 of the original gpio_keys infrastructure; cleanups and other
 improvements.]

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: turbografx - fix reference counting
Namhyung Kim [Wed, 1 Dec 2010 17:19:45 +0000 (09:19 -0800)]
Input: turbografx - fix reference counting

The ref-count of parport gained from parport_find_number()
was not released in normal path.

Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: synaptics - fix handling of 2-button ClickPads
Yan Li [Wed, 1 Dec 2010 07:51:03 +0000 (23:51 -0800)]
Input: synaptics - fix handling of 2-button ClickPads

Lenovo S10-3t's ClickPad is a 2-button ClickPad that reports BTN_LEFT
and BTN_RIGHT as normal touchpad, unlike the 1-button ClickPad used in
HP mini 210 that reports solely BTN_MIDDLE.

In 0xc0-cap response, the 1-button ClickPad has the 20-bit set while
2-button ClickPad has the 8-bit set.

This patch makes the kernel only handle 1-button ClickPad specially,
and treat 2-button ClickPad in the same fashion as regular touchpads.

This fixes kernel bug #18122 and MeeGo bug #4807.

Signed-off-by: Yan Li <yan.i.li@intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - add IDs for two new Bamboo PTs
David Foley [Wed, 1 Dec 2010 07:45:46 +0000 (23:45 -0800)]
Input: wacom - add IDs for two new Bamboo PTs

Add two new Bamboo Pen & Touch models:

Bamboo Comic Medium (CTH661/S1; Product ID = 0xd8)
Bamboo P & T Special Edition Small (CTH461/L;  Product ID = 0xdA)

Tested-by: IRIE Shinsuke <irieshinsuke@yahoo.co.jp>
Tested-by: Andrea Cadeddu <mrernia@gmail.com>
Signed-off-by: David Foley <favux.is@gmail.com>
Reviewed-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: document struct input_absinfo
Dmitry Torokhov [Tue, 30 Nov 2010 07:33:04 +0000 (23:33 -0800)]
Input: document struct input_absinfo

Add documentation for struct input_absinfo that is used in EVIOCGABS
and EVIOCSABS ioctl and specify units of measure used for reporting
resolution for an axis.

Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: add keycodes for touchpad on/off keys
Bastien Nocera [Tue, 30 Nov 2010 07:33:05 +0000 (23:33 -0800)]
Input: add keycodes for touchpad on/off keys

Some laptops will have a "touchpad toggle" soft button, which expects
user-space to turn off the touchpad themselves, some other devices will
do this in hardware, but send key events telling us that the touchpad
has been turned off/on.

KEY_TOUCHPAD_ON/KEY_TOUCHPAD_OFF will be used by user-space to show a
popup with the status of the touchpad.

Signed-off-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: use pr_fmt and pr_<level>
Joe Perches [Tue, 30 Nov 2010 07:33:07 +0000 (23:33 -0800)]
Input: use pr_fmt and pr_<level>

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: i8042 - use pr_<level>, pr_fmt, fix dbg and __FILE__ use
Joe Perches [Tue, 30 Nov 2010 07:33:07 +0000 (23:33 -0800)]
Input: i8042 - use pr_<level>, pr_fmt, fix dbg and __FILE__ use

Standardized message logging prefixes.
Removed \n from dbg macro, added \n to each dbg call site.
Removed direct use of __FILE__ from dbg, converted to pr_fmt(fmt)
Added non-debug printf argument verification of dbg calls
Removed "i8042.c" from printks, converted to pr_<level>

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: add CMA3000 accelerometer driver
Hemanth V [Wed, 1 Dec 2010 07:03:54 +0000 (23:03 -0800)]
Input: add CMA3000 accelerometer driver

Add support for CMA3000 Tri-axis accelerometer, which supports Motion
detect, Measurement and Free fall modes. CMA3000 supports both I2C/SPI
bus for communication, currently the driver supports I2C based
communication.

Signed-off-by: Hemanth V <hemanthv@ti.com>
Reviewed-by: Jonathan Cameron <jic23@cam.ac.uk>
Reviewed-by: Sergio Aguirre <saaguirre@ti.com>
Reviewed-by: Shubhrajyoti <Shubhrajyoti@ti.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: iforce - clean up Makefile
Dmitry Torokhov [Mon, 22 Nov 2010 20:53:23 +0000 (12:53 -0800)]
Input: iforce - clean up Makefile

Use <module>-y notation to specify list of objects comprising iforce
module and conditionally pull in USB and RS232 support.

Also remove custom compiler flags and rely on general makefile rules
for enabling warnings.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: clean up Makefile (use input-core-y)
Dmitry Torokhov [Mon, 22 Nov 2010 20:39:28 +0000 (12:39 -0800)]
Input: clean up Makefile (use input-core-y)

The proper way to specify multi-source object is to use <name>-y instead
of <name>-obj (which is deprecated) as it allows conditional inclusion
of modules in the list.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: usbtouchscreen - add support for LG Flatron T1710B
Glenn Sommer [Mon, 22 Nov 2010 20:00:05 +0000 (12:00 -0800)]
Input: usbtouchscreen - add support for LG Flatron T1710B

I've recently got my hands on a LG Flatron T1710B touchscreen.
As other LG products, this seems to use the ITM panel.

Signed-off-by: Glenn Sommer <gsommer@datanordisk.dk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: ct82c710 - remove a redundant serio_register_port()
Axel Lin [Mon, 22 Nov 2010 06:27:13 +0000 (22:27 -0800)]
Input: ct82c710 - remove a redundant serio_register_port()

We already call serio_register_port() in ct82c710_probe(),
thus remove a redundant serio_register_port() in ct82c710_init().

Looks like this bug is introduced by
916d83cfe5da1cda454d8b0ae233f06b58bd7f91
"Input: ct82c710 - convert to the new platform device interface"

[dtor@mail.ru: also move printk to where we register port]
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: ams_delta_serio - fix wrong kfree in ams_delta_serio_exit
Axel Lin [Mon, 22 Nov 2010 06:27:09 +0000 (22:27 -0800)]
Input: ams_delta_serio - fix wrong kfree in ams_delta_serio_exit

serio_unregister_port() will call put_device() to free the memory.
Thus remove kfree(ams_delta_serio) after
serio_unregister_port(ams_delta_serio).

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: ps2mult - fix wrong kfree in ps2mult_connect error path
Axel Lin [Mon, 22 Nov 2010 06:23:06 +0000 (22:23 -0800)]
Input: ps2mult - fix wrong kfree in ps2mult_connect error path

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: serio HIL MLC - don't deref null, don't leak and return proper error
Jesper Juhl [Sat, 20 Nov 2010 21:36:49 +0000 (13:36 -0800)]
Input: serio HIL MLC - don't deref null, don't leak and return proper error

While reviewing various users of kernel memory allocation functions I came
across drivers/input/serio/hil_mlc.c::hil_mlc_register() and noticed that:

 - it calls kzalloc() but fails to check for a NULL return before use.
 - it makes several allocations and if one fails it doesn't free the
   previous ones.
 - It doesn't return -ENOMEM in the failed memory allocation case (it just
   crashes).

This patch corrects all of the above and also reworks the only caller of
this function that I could find
(drivers/input/serio/hp_sdc_mlc.c::hp_sdc_mlc_out()) so that it now checks
the return value of hil_mlc_register() and properly propagates it on
failure and I also restructured the code to remove some labels and goto's
to make it, IMHO nicer to read.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Tested-by: Helge Deller <deller@gmx.de>
Acked-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: add support for keyboards on ST SPEAr platform
Rajeev Kumar [Fri, 19 Nov 2010 20:41:19 +0000 (12:41 -0800)]
Input: add support for keyboards on ST SPEAr platform

Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: fix typo in keycode validation supporting large scancodes
Mattia Dongili [Thu, 18 Nov 2010 17:06:43 +0000 (09:06 -0800)]
Input: fix typo in keycode validation supporting large scancodes

Check the input_keymap_entry keycode size (u32) instead of the device's
(void*) when validating that keycode value can be stored in the keymap.

Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=22722
Signed-off-by: Mattia Dongili <malattia@linux.it>
Tested-by: Norbert Preining <preining@logic.at>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: gameport - convert to use common workqueue instead of a thread
Dmitry Torokhov [Mon, 15 Nov 2010 09:39:57 +0000 (01:39 -0800)]
Input: gameport - convert to use common workqueue instead of a thread

Instead of creating an exclusive thread to handle gameport events (which
happen rarely), let's switch to common workqueue. With the arrival
of concurrency-managed workqueue infrastructure we are not concerned
that our callers or callees also using workqueue (no deadlocks anymore)
and it should reduce total number of threads in the system.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: serio - convert to common workqueue instead of a thread
Dmitry Torokhov [Mon, 15 Nov 2010 09:39:57 +0000 (01:39 -0800)]
Input: serio - convert to common workqueue instead of a thread

Instead of creating an exclusive thread to handle serio events (which
happen rarely), let's switch to using common workqueue. With the arrival
of concurrency-managed workqueue infrastructure we are not concerned
that our callers or callees also using workqueue (no deadlocks anymore)
and it should reduce total number of threads in the system.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: qt602240_ts - fix wrong sizeof in object table allocation
Chris Leech [Thu, 18 Nov 2010 07:59:54 +0000 (23:59 -0800)]
Input: qt602240_ts - fix wrong sizeof in object table allocation

The kcalloc call for the object table is using sizeof(struct qt602240_data)
when it should be using sizeof(struct qt6602240_object), resulting in a larger
allocation than is required.

Signed-off-by: Chris Leech <christopher.leech@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: qt602240_ts - convert to using dev_pm_ops
Dmitry Torokhov [Thu, 18 Nov 2010 08:14:03 +0000 (00:14 -0800)]
Input: qt602240_ts - convert to using dev_pm_ops

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: xpad - ensure xpad->bulk_out is initialized before submitting urb
Axel Lin [Thu, 18 Nov 2010 07:59:34 +0000 (23:59 -0800)]
Input: xpad - ensure xpad->bulk_out is initialized before submitting urb

As pointed out by Oliver Neukum:
xpad->irq_in is currently submitted before xpad->bulk_out is allocated.
That however is a race, because the callback for irq_in can call
xpad360w_process_packet(), which will in turn submit the bulk URB.

This patch moves initialization for xpad->bulk_out earlier, so we can
ensure xpad->bulk_out is initialized before submitting urb.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: aiptek - tighten up permissions on sysfs attributes
Dmitry Torokhov [Mon, 15 Nov 2010 21:33:25 +0000 (13:33 -0800)]
Input: aiptek - tighten up permissions on sysfs attributes

Sysfs attributes affecting device behavior should not be, by default,
world-writeable. If distributions want to allow console users access
these attributes they need to employ udev and friends to adjust
permissions as needed.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: hgpk - fix powersave mode
Paul Fox [Mon, 15 Nov 2010 09:33:24 +0000 (01:33 -0800)]
Input: hgpk - fix powersave mode

Recent testing of this codepath showed that it wasn't working,
perhaps due to changes within the input layer. This fixes it.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: hgpk - recalibration tweaks
Daniel Drake [Mon, 15 Nov 2010 09:33:22 +0000 (01:33 -0800)]
Input: hgpk - recalibration tweaks

Disable the recalibration guard where new recalibrations are triggered
if we detect a packet too soon after calibrating - we found that this
results in erroneous recalibrations, and if the recalibration failed
then the rest of our badness-detection code will request another.

Add a module option disabling all of the recalibration code, in case
an OLPC deployment thinks all of the workarounds we have are doing
more damage than good and wants to experiment with them all disabled.

Based on work by Paul Fox.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: hgpk - detect simple mode overflows
Daniel Drake [Mon, 15 Nov 2010 09:28:54 +0000 (01:28 -0800)]
Input: hgpk - detect simple mode overflows

Based on work by Paul Fox.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: sysrq - pass along lone Alt + SysRq
Dmitry Torokhov [Mon, 15 Nov 2010 08:23:42 +0000 (00:23 -0800)]
Input: sysrq - pass along lone Alt + SysRq

When user presses and releases Alt + SysRq without pressing any of the
hot keys re-inject the combination and pass it on to userspace instead
of suppressing it - maybe he or she wanted to take print screen
instead of invoking SysRq handler.

Also pass along release events for keys that have been pressed before
SysRq mode has been invoked so that keys do not appear to be "stuck".

Acked-by: Jason Wessel <jason.wessel@windriver.com>
Tested-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: mac mouse emulation - add locking
Dmitry Torokhov [Fri, 12 Nov 2010 06:03:59 +0000 (22:03 -0800)]
Input: mac mouse emulation - add locking

We need to add appropriate locking when toggling mac mouse emulation
on and off to ensure that input device and handler are in consistent
state.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: hgpk - extend jumpiness detection
Daniel Drake [Fri, 12 Nov 2010 06:20:03 +0000 (22:20 -0800)]
Input: hgpk - extend jumpiness detection

In addition to forcing recalibrations upon detection of cursor jumps (and
performing them quicker than before), detect and discard errant 'jump'
packets caused by a firmware bug, which are then repeated with each one
being approximately half the delta of the one previously (as if it is
averaging out)

Based on original work by Paul Fox.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: hgpk - rework spew detection
Daniel Drake [Fri, 12 Nov 2010 06:20:02 +0000 (22:20 -0800)]
Input: hgpk - rework spew detection

The old implementation of spew detection simply tracked the overall
position delta of the cursor over every 100 packets. We found that
this causes occasional false positives in spew detection, and also
that the conditions of the spewy packets are perhaps more fixed than
we once thought.

Rework the spew detection to look for packets of specific small
delta, and only recalibrating if the overall movement delta stays
within expected bounds.

Also discard duplicate packets in the advanced mode, which appear
to be very common. If we don't, the spew detection kicks in far
too early. If we get a large spew of duplicates, request a
recalibration straight up.

Based on earlier work by Paul Fox.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: hgpk - support GlideSensor and PenTablet modes
Daniel Drake [Fri, 12 Nov 2010 06:19:57 +0000 (22:19 -0800)]
Input: hgpk - support GlideSensor and PenTablet modes

Add a "hgpk_mode" sysfs attribute that allows selection between 3 options:
Mouse (the existing option), GlideSensor and PenTablet.

GlideSensor is an enhanced protocol for the regular touchpad mode that
additionally reports pressure and uses absolute coordinates. We suspect
that it may be more reliable than mouse mode in some environments.

PenTablet mode puts the touchpad into resistive mode, you must then use
a stylus as an input. We suspect this is the most reliable way to drive
the touchpad.

The GlideSensor and PenTablet devices expose themselves with the
intention of being combined with the synaptics X11 input driver.

Based on earlier work by Paul Fox.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: pcf_keypad - convert to dev_op_ops
Dmitry Torokhov [Thu, 11 Nov 2010 09:03:00 +0000 (01:03 -0800)]
Input: pcf_keypad - convert to dev_op_ops

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: xpad - remove useless check in xpad_remove
Dmitry Torokhov [Fri, 12 Nov 2010 05:52:18 +0000 (21:52 -0800)]
Input: xpad - remove useless check in xpad_remove

ixpad can never be NULL here; if it is NULL we would not have been bound to
the interface and then why would we be called?

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: xpad - fix resource reclaim in xpad_probe error path
Axel Lin [Fri, 12 Nov 2010 05:47:42 +0000 (21:47 -0800)]
Input: xpad - fix resource reclaim in xpad_probe error path

Properly free the resources in error path by the reverse order of resource
allocation.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: xpad - fix a memory leak
Axel Lin [Fri, 12 Nov 2010 05:43:17 +0000 (21:43 -0800)]
Input: xpad - fix a memory leak

In xpad_led_disconnect(), what we really want is to kfree(xpad_led).
In xpad_disconnect(), add a missing kfree(xpad->bdata) to fix the memory leak.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: xpad - return proper error in error path
Axel Lin [Fri, 12 Nov 2010 05:39:11 +0000 (21:39 -0800)]
Input: xpad - return proper error in error path

In current implementation, xpad_probe return 0 when
usb_alloc_urb failed for xpad->bulk_out and kzalloc failed for xpad->bdata.

This patch removes the initialization for error variable,
assign the error code at the place the error happens instead.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: do not pass injected events back to the originating handler
Dmitry Torokhov [Tue, 9 Nov 2010 05:51:25 +0000 (21:51 -0800)]
Input: do not pass injected events back to the originating handler

Sometimes input handlers (as opposed to input devices) have a need to
inject (or re-inject) events back into input core. For example sysrq
filter may want to inject previously suppressed Alt-SysRq so that user
can take a screen print. In this case we do not want to pass such events
back to the same same handler that injected them to avoid loops.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: pcf8574_keypad - fix error handling in pcf8574_kp_probe
Dan Carpenter [Thu, 11 Nov 2010 07:59:20 +0000 (23:59 -0800)]
Input: pcf8574_keypad - fix error handling in pcf8574_kp_probe

It is not allowed to call input_free_device() after calling
input_unregister_device() because input devices are refcounted and
unregister will free the device if we were holding he last referenc.

The preferred style in input/ is to make input_register_device() the
last function in the probe which can fail.  That way we don't need to
call input_unregister_device().

Also do not need to call input_set_drvdata() as nothing in the driver
uses the data.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: acecad - fix a memory leak in usb_acecad_probe error path
Axel Lin [Thu, 11 Nov 2010 07:05:07 +0000 (23:05 -0800)]
Input: acecad - fix a memory leak in usb_acecad_probe error path

Add a missing usb_free_urb() in usb_acecad_probe() error path.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: atkbd - add 'terminal' parameter for IBM Terminal keyboards
Benjamin LaHaise [Thu, 4 Nov 2010 17:29:13 +0000 (10:29 -0700)]
Input: atkbd - add 'terminal' parameter for IBM Terminal keyboards

Many of the IBM Terminal keyboards from the 1980s and early 1990s communicate
using a protocol similar, but not identical to the AT keyboard protocol.
(Models known to be like this include 6110344611066813908761386887, and
possibly others.)

When the connector is rewired or adapter to an AT-DIN or PS/2 connector, they
can be connected to a standard PC, with three caveats:

a) They can only use scancode set 3; requests to use anything else are
quietly ignored.
b) The AT Command to request Make, Break and Repeat codes is not properly
interpreted.
c) The top function keys on a 122 key keyboard, and the arrow/edit keys in
the middle of the board send non-standard scancodes.

C) is easily taken care of in userspace, by use of setkeycodes
B) can be taken care of by a userspace hack (that makes the kernel complain
in dmesg)
A) is fixable in theory, but on the keyboard i tested on (6110668), it seems
to be detected unoverridably as Set 2, causing userspace oddities that make
it harder to fix C).

Enclosed is a small patch to the kernel that fixes A) and B) in the kernel,
making it much easier to fix C) in userspace. It adds a single kernel
command line parameter that overrides the detection that sets these boards
as set 2, and instead of sending the Make-break-repeat command to the
keyboard, it sends the make-break command, which is properly recognized by
these keyboards. Software level key repeating seems to make up for the lack
of hardware repeat codes perfectly.

Without manually setting the command line parameter (tentatively named
atkbd.terminal), this code has no effect, and the driver works exactly as
before.

See also:

http://www.seasip.info/VintagePC/ibm_1390876.html
http://www.seasip.info/VintagePC/ibm_6110344.html
http://geekhack.org/showwiki.php?title=Island:7306

Signed-off-by: Erika Quinn <erikas.aubade@gmail.com>
Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: i8042 - add Sony VAIOs to MUX blacklist
Jesse Barnes [Thu, 4 Nov 2010 15:38:18 +0000 (08:38 -0700)]
Input: i8042 - add Sony VAIOs to MUX blacklist

The Sony VPCZ1 doesn't support active multiplexing and trying to enable
it causes keyboard to stop working. Since most (all?) VAIOs do not have
external PS/2 ports nor they implement active multiplexing properly, and
trying to enable MUX usually messes up keyboard/touchpad, let's simply
disable MUX probing based on board name (VAIO).

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agokgdboc: reset input devices (keyboards) when exiting debugger
Dmitry Torokhov [Wed, 3 Nov 2010 18:04:05 +0000 (11:04 -0700)]
kgdboc: reset input devices (keyboards) when exiting debugger

Use the newly exported input_reset_device() call to reset LED state and
mark all keys/buttons as released on all keyboard-like devices when
exiting the debugger.

[jason.wessel@windriver.com: fix compile without keyboard input driver]
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: export input_reset_device() for use in KGDB
Dmitry Torokhov [Wed, 3 Nov 2010 18:02:31 +0000 (11:02 -0700)]
Input: export input_reset_device() for use in KGDB

KGDB, much like the resume process, needs to be able to mark all keys that
were pressed at the time we dropped into the debuggers as "released", since
it is unlikely that the keys stay pressed for the entire duration of the
debug session.

Also we need to make sure that input_reset_device() and input_dev_suspend()
only attempt to change state of currenlt opened devices since closed devices
may not be ready to accept IO requests.

Tested-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
14 years agoInput: adp5588-keys - unify common header defines
Michael Hennerich [Tue, 2 Nov 2010 18:33:05 +0000 (11:33 -0700)]
Input: adp5588-keys - unify common header defines

Unify adp5588-gpio and adp5588-keys common header defines (as per Andrew
Morton request). For consistency, move remaining defines and prefix
accordingly.

No functional changes.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>