openwrt/staging/blogic.git
13 years agoInput: wm831x-ts - move BTN_TOUCH reporting to data transfer
Mark Brown [Thu, 28 Apr 2011 06:09:26 +0000 (23:09 -0700)]
Input: wm831x-ts - move BTN_TOUCH reporting to data transfer

Don't report BTN_TOUCH until we've got data as some less robust applications
can be confused by getting a touch event by itself and it doesn't seem
unreasonable for them to expect coordinates along with a touch.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wm831x-ts - allow IRQ flags to be specified
Mark Brown [Thu, 28 Apr 2011 06:08:51 +0000 (23:08 -0700)]
Input: wm831x-ts - allow IRQ flags to be specified

This allows maximum flexibility for configuring the direct GPIO based
interrupts.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wm831x-ts - fix races with IRQ management
Mark Brown [Thu, 28 Apr 2011 06:08:34 +0000 (23:08 -0700)]
Input: wm831x-ts - fix races with IRQ management

If the WM831x pen down and data IRQs run in parallel it is possible for the
data and pen down IRQs to deadlock themselves as one is part way through
disabling its operation while the other is part way through enabling. Fix
this by always disabling the pen down interrupt while data is active and
vice versa.  When a changeover is required we disable the IRQ that is to
be stopped then schedule work that will enable the new IRQ.

We need to handle the data flow in the data IRQ as the readback from the
device needs to be ordered correctly with the IRQ for robust operation.

This also fixes an issue when using the built in IRQs due to enable_irq()
not being valid from interrupt context on an interrupt controller with bus
operations like the built in IRQ controller - this issue may also have
affected other interrupt controllers.  We can't rely on having the data
and pen down IRQs available via GPIOs on the CPU on every system.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: xen-kbdfront - fix mouse getting stuck after save/restore
Igor Mammedov [Mon, 18 Apr 2011 17:17:17 +0000 (10:17 -0700)]
Input: xen-kbdfront - fix mouse getting stuck after save/restore

Mouse gets "stuck" after restore of PV guest but buttons are in working
condition.

If driver has been configured for ABS coordinates at start it will get
XENKBD_TYPE_POS events and then suddenly after restore it'll start getting
XENKBD_TYPE_MOTION events, that will be dropped later and they won't get
into user-space.

Regression was introduced by hunk 5 and 6 of
5ea5254aa0ad269cfbd2875c973ef25ab5b5e9db
("Input: xen-kbdfront - advertise either absolute or relative
coordinates").

Driver on restore should ask xen for request-abs-pointer again if it is
available. So restore parts that did it before 5ea5254.

Acked-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
[v1: Expanded the commit description]
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: estimate number of events per packet
Jeff Brown [Mon, 18 Apr 2011 17:08:02 +0000 (10:08 -0700)]
Input: estimate number of events per packet

Calculate a default based on the number of ABS axes, REL axes,
and MT slots for the device during input device registration.

Signed-off-by: Jeff Brown <jeffbrown@android.com>
Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: evdev - indicate buffer overrun with SYN_DROPPED
Jeff Brown [Wed, 13 Apr 2011 06:29:38 +0000 (23:29 -0700)]
Input: evdev - indicate buffer overrun with SYN_DROPPED

Add a new EV_SYN code, SYN_DROPPED, to inform the client when input
events have been dropped from the evdev input buffer due to a
buffer overrun.  The client should use this event as a hint to
reset its state or ignore all following events until the next
packet begins.

Signed-off-by: Jeff Brown <jeffbrown@android.com>
[dtor@mail.ru: Implement Henrik's suggestion and drop old events in
 case of overflow.]
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: document event types and codes and their intended use
Chase Douglas [Wed, 13 Apr 2011 06:29:07 +0000 (23:29 -0700)]
Input: document event types and codes and their intended use

This commit adds the file Documentation/input/event-codes.txt.

Acked-by: Henrik Rydberg <rydberg@euromail.se>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: add KEY_IMAGES specifically for AL Image Browser
Jarod Wilson [Wed, 13 Apr 2011 06:13:08 +0000 (23:13 -0700)]
Input: add KEY_IMAGES specifically for AL Image Browser

Many media center remotes have buttons intended for jumping straight to
one type of media browser or another -- commonly, images/photos/pictures,
audio/music, television, and movies. At present, remotes with an images
or photos or pictures button use any number of different keycodes which
sort of maybe fit. I've seen at least KEY_MEDIA, KEY_CAMERA,
KEY_GRAPHICSEDITOR and KEY_PRESENTATION. None of those seem quite right.
In my mind, KEY_MEDIA should be something more like a media center
application launcher (and I'd like to standardize on that for things
like the windows media center button on the mce remotes). KEY_CAMERA is
used in a lot of webcams, and typically means "take a picture now".
KEY_GRAPHICSEDITOR implies an editor, not a browser. KEY_PRESENTATION
might be the closest fit here, if you think "photo slide show", but it
may well be more intended for "run application in full-screen
presentation mode" or to launch something like magicpoint, I dunno.
And thus, I'd like to have a KEY_IMAGES, which matches the HID Usage AL
Image Browser, the meaning of which I think is crystal-clear. I believe
AL Audio Browser is already covered by KEY_AUDIO, and AL Movie Browser
by KEY_VIDEO, so I'm also adding appropriate comments next to those
keys.

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: twl4030_keypad - fix potential NULL dereference in twl4030_kp_probe()
Axel Lin [Tue, 12 Apr 2011 06:50:02 +0000 (23:50 -0700)]
Input: twl4030_keypad - fix potential NULL dereference in twl4030_kp_probe()

We should first check whether platform data is NULL or not, before
dereferencing it to get the keymap.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: h3600_ts - fix error handling at connect
Christoph Fritz [Wed, 6 Apr 2011 22:33:16 +0000 (15:33 -0700)]
Input: h3600_ts - fix error handling at connect

In case of an error in h3600ts_connect(), deconstruct in correct order
and with the right calls.

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: twl4030_keypad - avoid potential NULL-pointer dereference
Shubhrajyoti D [Wed, 6 Apr 2011 22:31:22 +0000 (15:31 -0700)]
Input: twl4030_keypad - avoid potential NULL-pointer dereference

Signed-off-by: Shubhrajyoti D <a0393217@india.ti.com>
Acked-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: rpckbd - fix a leak of the IRQ during init failure
Axel Lin [Sun, 3 Apr 2011 04:20:24 +0000 (21:20 -0700)]
Input: rpckbd - fix a leak of the IRQ during init failure

In rpckbd_open prror path, free_irq() was using NULL rather than the
driver data as the data pointer so free_irq() wouldn't have matched.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - add support for Lenovo tablet ID (0xE6)
Manoj Iyer [Fri, 1 Apr 2011 05:39:43 +0000 (22:39 -0700)]
Input: wacom - add support for Lenovo tablet ID (0xE6)

Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: i8042 - downgrade selftest error message to dbg()
Paul Bolle [Thu, 31 Mar 2011 07:11:48 +0000 (00:11 -0700)]
Input: i8042 - downgrade selftest error message to dbg()

On a "really fragile" laptop I noticed a single
    i8042.c: i8042 controller selftest failed. (0x1 != 0x55)

error in the log. But there's no reason to print this message at
KERN_ERR level each time that loop fails, especially since the message
telling about the overall selftest failure is printed at KERN_INFO level
(on X86).

Add an actual error message for non-X86 systems, where a selftest
failure is (apparently) more serious. Remove a space in an another error
message.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: synaptics - fix crash in synaptics_module_init()
Jan Beulich [Thu, 31 Mar 2011 07:01:58 +0000 (00:01 -0700)]
Input: synaptics - fix crash in synaptics_module_init()

'struct dmi_system_id' arrays must always have a terminator to keep
dmi_check_system() from looking at data (and possibly crashing) it
isn't supposed to look at.

The issue went unnoticed until ef8313bb1a22e7d2125d9d758aa8a81f1de91d81,
but was introduced about a year earlier with
7705d548cbe33f18ea7713b9a07aa11047aaeca4 (which also similarly changed
lifebook.c, but the problem there got eliminated shortly afterwards).

The first hunk therefore is a stable candidate back to 2.6.33, while
the full change is needed only on 2.6.38.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: spear-keyboard - fix inverted condition in interrupt handler
Rajeev Kumar [Thu, 31 Mar 2011 05:33:42 +0000 (22:33 -0700)]
Input: spear-keyboard - fix inverted condition in interrupt handler

We should return IRQ_NONE from interrupt handler in case keyboard
does not report DATA_AVAIL condition.

Signed-off-by: Rajeev Kumar <rajeev-dlh.kumar@st.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: uinput - allow for 0/0 min/max on absolute axes.
Peter Hutterer [Thu, 31 Mar 2011 05:25:34 +0000 (22:25 -0700)]
Input: uinput - allow for 0/0 min/max on absolute axes.

Some devices provide absolute axes with min/max of 0/0 (e.g. wacom's
ABS_MISC axis). Current uinput restrictions do not allow duplication of
these devices and require hacks in userspace to work around this.

If the kernel accepts physical devices with a min/max of 0/0, uinput
shouldn't disallow the same range.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: sparse-keymap - report KEY_UNKNOWN for unknown scan codes
Seth Forshee [Sun, 27 Mar 2011 05:53:34 +0000 (22:53 -0700)]
Input: sparse-keymap - report KEY_UNKNOWN for unknown scan codes

This allows for debugging non-functional keys easily from
userspace.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: sparse-keymap - report scancodes with key events
Seth Forshee [Sun, 27 Mar 2011 05:53:34 +0000 (22:53 -0700)]
Input: sparse-keymap - report scancodes with key events

Scancodes are useful debugging aids when incorrect keycodes
are being sent, as is common with laptop hotkeys.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: h3600_ts_input - fix a spelling error
Sylvestre Ledru [Sun, 27 Mar 2011 05:52:25 +0000 (22:52 -0700)]
Input: h3600_ts_input - fix a spelling error

Signed-off-by: Sylvestre Ledru <sylvestre.ledru@scilab.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - report resolution for pen devices
Ping Cheng [Sun, 27 Mar 2011 04:16:05 +0000 (21:16 -0700)]
Input: wacom - report resolution for pen devices

Touch resolution is reported to the userland by retrieving the value
from the HID descriptor. But pen resolution is not since it can not
be retrieved. The current Wacom X driver has a resolution table.
To centralize the source of these values, the resolution entries are
added in the wacom_features struct for x and y coordinates respectively.
The values are then reported to the userland.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - constify wacom_features for a new missed Bamboo models
Ping Cheng [Sun, 27 Mar 2011 04:16:04 +0000 (21:16 -0700)]
Input: wacom - constify wacom_features for a new missed Bamboo models

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - fix locking issue
Aaro Koskinen [Thu, 24 Mar 2011 06:48:19 +0000 (23:48 -0700)]
Input: tsc2005 - fix locking issue

Commit 0b950d3 (Input: tsc2005 - add open/close) introduced a
locking issue with the ESD watchdog: __tsc2005_disable() is calling
cancel_delayed_work_sync() with mutex held, and the work also needs the
same mutex.

Fix the problem by using mutex_trylock() in tsc2005_esd_work(). If the
mutex is taken, we know we are in the middle of disable or enable and
the watchdog check can be skipped.

Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - use relative jiffies to schedule the watchdog
Aaro Koskinen [Thu, 24 Mar 2011 06:45:11 +0000 (23:45 -0700)]
Input: tsc2005 - use relative jiffies to schedule the watchdog

Use relative jiffies to schedule the watchdog. Otherwise it will run
like a mad one.

Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - driver should depend on GENERIC_HARDIRQS
Geert Uytterhoeven [Mon, 21 Mar 2011 09:37:07 +0000 (02:37 -0700)]
Input: tsc2005 - driver should depend on GENERIC_HARDIRQS

drivers/input/touchscreen/tsc2005.c: In function ‘tsc2005_probe’:
drivers/input/touchscreen/tsc2005.c:666: error: implicit declaration of function ‘set_irq_wake’

In addition, migrate from set_irq_wake() (marked "do not use" as of commit
a0cd9ca2b907d7ee26575e7b63ac92dad768a75e ("genirq: Namespace cleanup")) to
irq_set_irq_wake().

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoMerge branch 'next' into for-linus
Dmitry Torokhov [Sat, 19 Mar 2011 06:38:50 +0000 (23:38 -0700)]
Merge branch 'next' into for-linus

13 years agoMerge branch 'tsc2005' into next
Dmitry Torokhov [Thu, 17 Mar 2011 06:29:56 +0000 (23:29 -0700)]
Merge branch 'tsc2005' into next

13 years agoInput: tsc2005 - remove 'disable' sysfs attribute
Dmitry Torokhov [Thu, 17 Mar 2011 05:11:41 +0000 (22:11 -0700)]
Input: tsc2005 - remove 'disable' sysfs attribute

I believe that enable/disable functionality should not be implemented on
the individual driver level but rather in device core, potentially
reusing parts of PM framework. Therefore the driver-specific "disable"
attribute is removed from the mainline driver.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - add open/close
Dmitry Torokhov [Thu, 17 Mar 2011 05:11:34 +0000 (22:11 -0700)]
Input: tsc2005 - add open/close

Introduce open and close methods for the input device to keep the device
powered down when it is not in use. Also rework interaction between
interrupt thread and starting/shutting off/resetting the device: instead
of taking a mutex in the intterrupt thread and elsewhere disable interrupts
before transitioning the device in a new state.

The ESD handling is also separated from the IRQ thread; we poll regularly
at a given interval and simply skip reads if we see that valid interrupt
happened not so long ago. This allows us not cancel and reschedule ESD
work from interrupt context all the time.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - handle read errors from SPI layer
Dmitry Torokhov [Thu, 17 Mar 2011 05:11:25 +0000 (22:11 -0700)]
Input: tsc2005 - handle read errors from SPI layer

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - do not rearm timer in hardirq handler
Dmitry Torokhov [Thu, 17 Mar 2011 05:11:14 +0000 (22:11 -0700)]
Input: tsc2005 - do not rearm timer in hardirq handler

We will most likely rearm it yet again the IRQ thread so doing it here
is pointless.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - don't use work for 'pen up' handling
Dmitry Torokhov [Thu, 17 Mar 2011 05:11:08 +0000 (22:11 -0700)]
Input: tsc2005 - don't use work for 'pen up' handling

We do not need process context to send input events so let's switch to
a regular timer. I am going to get rid of taking ts->mutex in
tsc2005_irq_thread() later.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - do not use 0 in place of NULL
Dmitry Torokhov [Thu, 17 Mar 2011 05:10:52 +0000 (22:10 -0700)]
Input: tsc2005 - do not use 0 in place of NULL

Sparse in unhappy when people use 0 instead of NULL for pointers so
let's rework the way we initialize spi_transfer structure in
tsc2005_cmd() and tsc2005_write().

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - use true/false for boolean variables
Dmitry Torokhov [Thu, 17 Mar 2011 05:10:46 +0000 (22:10 -0700)]
Input: tsc2005 - use true/false for boolean variables

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - hide selftest attribute if we can't reset
Dmitry Torokhov [Thu, 17 Mar 2011 05:10:37 +0000 (22:10 -0700)]
Input: tsc2005 - hide selftest attribute if we can't reset

If implementation to perform self-test/reset has not been provided by the
platform code hide 'selftest' sysfs attribute instead of returning error
when someone tries to use it.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - rework driver initialization code
Dmitry Torokhov [Thu, 17 Mar 2011 05:09:38 +0000 (22:09 -0700)]
Input: tsc2005 - rework driver initialization code

We need to make sure we have time/work initialized before requesting and
enabling interrupts, otherwise we might start using them way too early.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - set up bus type in input device
Dmitry Torokhov [Thu, 17 Mar 2011 05:09:32 +0000 (22:09 -0700)]
Input: tsc2005 - set up bus type in input device

We know what bus we are residing on (SPI) so let's make this data
available to the users.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - set up parent device
Dmitry Torokhov [Thu, 17 Mar 2011 05:09:25 +0000 (22:09 -0700)]
Input: tsc2005 - set up parent device

Set up SPI device as parent of the input device so it gets placed into
proper place in sysfs tree.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - clear driver data after unbinding
Dmitry Torokhov [Thu, 17 Mar 2011 05:09:09 +0000 (22:09 -0700)]
Input: tsc2005 - clear driver data after unbinding

We should not leave garbage pointers in driver structure after we unbind
it from the device or if bind fails.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - add module description
Dmitry Torokhov [Thu, 17 Mar 2011 05:09:03 +0000 (22:09 -0700)]
Input: tsc2005 - add module description

Add proper module description so that it would show in 'modinfo'
output.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - remove driver banner message
Dmitry Torokhov [Thu, 17 Mar 2011 05:08:53 +0000 (22:08 -0700)]
Input: tsc2005 - remove driver banner message

The boot process is noisy as it is and input core already announces
all new device so let's get rid of the banner message in the driver.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - remove incorrect module alias
Dmitry Torokhov [Thu, 17 Mar 2011 05:08:39 +0000 (22:08 -0700)]
Input: tsc2005 - remove incorrect module alias

TSC2005 is not a platform driver so it should not define "platform:tsc2005"
module alias.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - convert to using dev_pm_ops
Dmitry Torokhov [Thu, 17 Mar 2011 05:08:26 +0000 (22:08 -0700)]
Input: tsc2005 - convert to using dev_pm_ops

Newer code should not be using legacy suspend/resume methods but
rather supply dev_pm_ops structure as it allows better control
over power management.

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tsc2005 - use spi_get/set_drvdata()
Dmitry Torokhov [Thu, 17 Mar 2011 05:08:08 +0000 (22:08 -0700)]
Input: tsc2005 - use spi_get/set_drvdata()

Instead of peeking into underlying device and using dev_get/set_drvdata(),
let's use SPI layer's implementation to access driver-private data
(which may be different from driver-core private data).

Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: introduce tsc2005 driver
Lauri Leukkunen [Thu, 17 Mar 2011 05:07:36 +0000 (22:07 -0700)]
Input: introduce tsc2005 driver

Discussions:

http://www.mail-archive.com/linux-omap@vger.kernel.org/msg26748.html

Introduce a driver for the Texas Instruments TSC2005 touchscreen
controller (http://focus.ti.com/docs/prod/folders/print/tsc2005.html).

The patch is based on a driver by Lauri Leukkunen, with modifications
by David Brownell, Phil Carmody, Imre Deak, Hiroshi DOYU, Ari Kauppi,
Tony Lindgren, Jarkko Nikula, Eero Nurkkala and Roman Tereshonkov.

Signed-off-by: Lauri Leukkunen <lauri.leukkunen@nokia.com>
[aaro.koskinen@nokia.com: patch description, rebasing & cleanup]
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
[ext-srikar.1.bhavanarayana@nokia.com: various fixes]
Signed-off-by: Srikar <ext-srikar.1.bhavanarayana@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: xen-kbdfront - move to drivers/input/misc
Dmitry Torokhov [Thu, 17 Mar 2011 05:56:03 +0000 (22:56 -0700)]
Input: xen-kbdfront - move to drivers/input/misc

drivers/input is reserved for input core code and input handlers with
drivers belonging to one of the sub-directories.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: xen-kbdfront - add grant reference for shared page
Daniel De Graaf [Thu, 17 Mar 2011 05:52:42 +0000 (22:52 -0700)]
Input: xen-kbdfront - add grant reference for shared page

Without a grant reference, full access to the domain's memory is
required to use the shared page. Add an additional parameter in
xenstore to allow grant mapping to be used.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Acked-by: Ian Campbell <Ian.Campbell@eu.citrix.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: xen-kbdfront - advertise either absolute or relative coordinates
Olaf Hering [Thu, 17 Mar 2011 05:11:46 +0000 (22:11 -0700)]
Input: xen-kbdfront - advertise either absolute or relative coordinates

A virtualized display device is usually viewed with the vncviewer
application, either by 'xm vnc domU' or with vncviewer localhost:port.
vncviewer and the RFB protocol provides absolute coordinates to the
virtual display. These coordinates are either passed through to a PV
guest or converted to relative coordinates for a HVM guest.

A PV guest receives these coordinates and passes them to the kernels
evdev driver. There it can be picked up by applications such as the
xorg-input drivers. Using absolute coordinates avoids issues such as
guest mouse pointer not tracking host mouse pointer due to wrong mouse
acceleration settings in the guests X display.

Advertise either absolute or relative coordinates to the input system
and the evdev driver, depending on what dom0 provides. The xorg-input
driver prefers relative coordinates even if a devices provides both.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tc3589x-keypad - fix 'double const' warning
Dmitry Torokhov [Wed, 16 Mar 2011 06:18:00 +0000 (23:18 -0700)]
Input: tc3589x-keypad - fix 'double const' warning

Also rearrange driver structure initializer a bit.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tca6416-keypad - suspend/resume wakeup support
Magnus Damm [Wed, 16 Mar 2011 05:32:39 +0000 (22:32 -0700)]
Input: tca6416-keypad - suspend/resume wakeup support

Extend the tca6416 driver to use enable_irq_wake() and disable_irq_wake()
in the suspend/resume hooks.

This makes it possible to wake up from suspend-to-ram using a tca6416 key
on the sh7372 mackerel board.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - add objects of mXT1386 chip
Joonyoung Shim [Tue, 15 Mar 2011 04:41:40 +0000 (21:41 -0700)]
Input: atmel_mxt_ts - add objects of mXT1386 chip

Atmel mXT1386 chip is operated by atmel_mxt_ts driver and it has some
different objects.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - remove firmware version check
Joonyoung Shim [Tue, 15 Mar 2011 04:41:34 +0000 (21:41 -0700)]
Input: atmel_mxt_ts - remove firmware version check

Atmel touchscreen chips have different firmware version with each chip,
so we cannot distinguish attribute of chip by firmware version.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wm831x-ts - ensure the controller is in a known state on open
Mark Brown [Tue, 15 Mar 2011 04:39:09 +0000 (21:39 -0700)]
Input: wm831x-ts - ensure the controller is in a known state on open

Explicitly set all the enable bits when opening the device just in case
something left the device in an unexpected state.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: add Atmel AT42QT1070 keypad driver
Bo Shen [Mon, 14 Mar 2011 06:34:59 +0000 (23:34 -0700)]
Input: add Atmel AT42QT1070 keypad driver

The AT42QT1070 QTouch sensor supports up to 7 keys.

The driver has been tested on Atmel AT91SAM9M10-G45-EK board, and it
 should work fine on other platforms.

Signed-off-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wm831x-ts - default pressure measurements on
Mark Brown [Sun, 13 Mar 2011 04:48:34 +0000 (20:48 -0800)]
Input: wm831x-ts - default pressure measurements on

tslib expects pressure measurements so enable them by default for better
compatibility.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: bcm5974 - add support for MacBookPro8
Andy Botting [Sun, 13 Mar 2011 04:27:22 +0000 (20:27 -0800)]
Input: bcm5974 - add support for MacBookPro8

This patch add multitouch support for the MacBookPro8,1 and
MacBookPro8,2 models.

Cc: stable@kernel.org
Signed-off-by: Andy Botting <andy@andybotting.com>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - support 2FGT in MT format
Ping Cheng [Sun, 13 Mar 2011 04:35:18 +0000 (20:35 -0800)]
Input: wacom - support 2FGT in MT format

Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - support one finger touch the touchscreen way
Ping Cheng [Sun, 13 Mar 2011 04:34:42 +0000 (20:34 -0800)]
Input: wacom - support one finger touch the touchscreen way

There are two types of 1FGT devices supported in wacom_wac.c.
Changing them to follow the existing touchscreen format, i.e.,
only report BTN_TOUCH as a valid tool type.

Touch data will be ignored if pen is in proximity. This requires
a touch up event sent if touch was down when pen comes in. The
touch up event should be sent before any pen events are emitted.
Otherwise, two pointers would race for the cursor.

However, we can not send a touch up inside wacom_tpc_pen since
pen and touch are on different logical port. That is why we
have to check if touch is up before sending pen events.

Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - process pen data in its own routine
Ping Cheng [Sun, 13 Mar 2011 04:34:11 +0000 (20:34 -0800)]
Input: wacom - process pen data in its own routine

So it would be easier for patch reviewers to follow the data path.

Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - do not send 2FGT Tablet PC events in TAP format
Ping Cheng [Sun, 13 Mar 2011 04:33:33 +0000 (20:33 -0800)]
Input: wacom - do not send 2FGT Tablet PC events in TAP format

2FGT Tablet PC touch events were processed in _TAP_ format. Remove
them so we can change to _MT_ format.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: evdev - fix evdev_write return value on partial writes
Peter Korsgaard [Fri, 25 Feb 2011 17:30:46 +0000 (09:30 -0800)]
Input: evdev - fix evdev_write return value on partial writes

As was recently brought up on the busybox list
(http://lists.busybox.net/pipermail/busybox/2011-January/074565.html),
evdev_write doesn't properly check the count argument, which will
lead to a return value > count on partial writes if the remaining bytes
are accessible - causing userspace confusion.

Fix it by only handling each full input_event structure and return -EINVAL
if less than 1 struct was written, similar to how it is done in evdev_read.

Reported-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: bcm5974 - Report button also for zero fingers
Henrik Rydberg [Fri, 25 Feb 2011 17:33:13 +0000 (09:33 -0800)]
Input: bcm5974 - Report button also for zero fingers

With the current code, pressing the integrated button with an
isolating tool does not result in any button report. Fixed
with this this patch.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - remove matrix size check
Iiro Valkonen [Thu, 24 Feb 2011 05:07:20 +0000 (21:07 -0800)]
Input: atmel_mxt_ts - remove matrix size check

The mxt_check_matrix_size() is currently setting the CTE mode to match
xline/yline information that is in the platform data, but it does not
take into account for example the fact that we could have a key array
in use too (key array would use some x/y lines as well).

It would be better to simply rely on the configuration data, and make
sure that the CTE mode set in there matches the touch object (touchscreen,
key array, proximity) configuration (which are set in the config data too).

Signed-off-by: Iiro Valkonen <iiro.valkonen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: mcs_touchkey - add shutdown handler
HeungJun Kim [Thu, 24 Feb 2011 05:42:49 +0000 (21:42 -0800)]
Input: mcs_touchkey - add shutdown handler

The MCS50XX series has a HW bug that requires explicit chip power down.
If chip is not powered down before shutting the system down the control
pins (powerup, interrupt) are pulled up and residue current continues
flowing into the chips making them continue consuming power.

Signed-off-by: Heungjun Kim <riverful.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: mcs_touchkey - add support for suspend/resume
Heungjun Kim [Thu, 24 Feb 2011 05:40:11 +0000 (21:40 -0800)]
Input: mcs_touchkey - add support for suspend/resume

This adds support for system-level suspend/resume to the driver.

Signed-off-by: Heungjun Kim <riverful.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: omap4-keypad - wire up runtime PM handling
Abraham Arce [Wed, 23 Feb 2011 06:25:59 +0000 (22:25 -0800)]
Input: omap4-keypad - wire up runtime PM handling

Enable Runtime PM functionality in OMAP4 driver based on the following
assumptions:

- keyboard controller in wakeup domain so it is always on and power
  impact is minimal;
- in OMAP4 the device control is at module/device level and ick/fclk
  level control is difficult so cutting of clocks will prevent
  interrupts.

Signed-off-by: Abraham Arce <x0066660@ti.com>
Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: serio/gameport - use 'long' system workqueue
Dmitry Torokhov [Wed, 23 Feb 2011 16:51:28 +0000 (08:51 -0800)]
Input: serio/gameport - use 'long' system workqueue

Commit 8ee294cd9def0004887da7f44b80563493b0a097 converted serio
subsystem event handling from using a dedicated thread to using
common workqueue. Unfortunately, this regressed our boot times,
due to the fact that serio jobs take long time to execute. While
the new concurrency managed workqueue code manages long-playing
works just fine and schedules additional workers as needed, such
works wreck havoc among remaining users of flush_scheduled_work().

To solve this problem let's move serio/gameport works from system_wq
to system_long_wq which nobody tries to flush.

Reported-and-tested-by: Hernando Torque <pantherchen@versanet.de>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: synaptics - document 0x0c query
Dmitry Torokhov [Wed, 23 Feb 2011 04:15:07 +0000 (20:15 -0800)]
Input: synaptics - document 0x0c query

Since Synaptics technical writers department is a bit slow releasing updated
Synaptics interface guide, let's add some new bits (with their blessing)
to the code so that they don't get lost.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: uinput - reversed test in uinput_setup_device()
Dan Carpenter [Fri, 18 Feb 2011 16:30:52 +0000 (08:30 -0800)]
Input: uinput - reversed test in uinput_setup_device()

The test here is reversed. It should be if (IS_ERR()) instead of
if (!IS_ERR()).

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - allow board code to specify IRQ flags
Iiro Valkonen [Tue, 15 Feb 2011 21:36:52 +0000 (13:36 -0800)]
Input: atmel_mxt_ts - allow board code to specify IRQ flags

Different board have different requirements/setups so let's be more
flexible.

Signed-off-by: Iiro Valkonen <iiro.valkonen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - allow board code to suppliy controller config
Iiro Valkonen [Tue, 15 Feb 2011 21:36:52 +0000 (13:36 -0800)]
Input: atmel_mxt_ts - allow board code to suppliy controller config

As there is no common configuration settings that would work in every
situation, remove the fixed config data from driver code and add
config data to platform data.

Signed-off-by: Iiro Valkonen <iiro.valkonen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - add mXT224 identifier to id_table
Chris Leech [Tue, 15 Feb 2011 21:36:52 +0000 (13:36 -0800)]
Input: atmel_mxt_ts - add mXT224 identifier to id_table

"mXT224" is used in the Intel mid firmware in SFI tables to identify the
presence of this I2C device.

Signed-off-by: Chris Leech <christopher.leech@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: synaptics_i2c - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 16:53:33 +0000 (08:53 -0800)]
Input: synaptics_i2c - convert to dev_pm_ops

There is a general move to convert drivers to dev_pm_ops rather than bus
specific PM ops in order to facilitate core development. Do this converison
for synaptics-i2c.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: adxl34x - fix references to adx134x
Mark Brown [Fri, 11 Feb 2011 16:53:04 +0000 (08:53 -0800)]
Input: adxl34x - fix references to adx134x

The adxl34x SPI driver has what appears to be a typo referring to the
device as adx134x with the numeral 1 rather than letter l. This appears
to be an error so convert.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: adxl34x-spi - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 17:22:40 +0000 (09:22 -0800)]
Input: adxl34x-spi - convert to dev_pm_ops

There is a general move to convert drivers to use dev_pm_ops rather than
bus specific ones in order to facilitate core development. Do this
conversion for adxl34x-spi.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: adxl34x-i2c - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 16:51:52 +0000 (08:51 -0800)]
Input: adxl34x-i2c - convert to dev_pm_ops

There is a general move to convert drivers to use dev_pm_ops rather than
bus specific ones in order to facilitate core development. Do this
conversion for adxl34x-i2c.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: max7359 - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 16:51:13 +0000 (08:51 -0800)]
Input: max7359 - convert to dev_pm_ops

There is a general move to convert drivers to use dev_pm_ops rather than
bus specific ops to facilitate core work. Do this conversion for max7359.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: lm8323 - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 16:50:37 +0000 (08:50 -0800)]
Input: lm8323 - convert to dev_pm_ops

There is a general move away from bus specific PM operations to using
dev_pm_ops in order to facilicate core improvements. Update lm8323 to
the new model.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: ad714x-spi - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 16:49:37 +0000 (08:49 -0800)]
Input: ad714x-spi - convert to dev_pm_ops

There is a general move to convert drivers to use dev_pm_ops rather than
bus specific PM operations in order to facilitate core work. Do this
conversion for ad714x-spi.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: ad714x-i2c - convert to dev_pm_ops
Mark Brown [Fri, 11 Feb 2011 16:49:05 +0000 (08:49 -0800)]
Input: ad714x-i2c - convert to dev_pm_ops

There is a general move to convert drivers to use dev_pm_ops rather than
bus specific PM operations in order to facilitate core work. Do this
conversion for ad714x-i2c.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: uinput - use memdup_user() and friends
Dmitry Torokhov [Fri, 11 Feb 2011 09:10:45 +0000 (01:10 -0800)]
Input: uinput - use memdup_user() and friends

Instead of open-coding copying of data structures from userspace use
memdup_user() and strndup_user(). Note that this introduces change in
behavior because driver used to truncate 'phys' longer than 1024 bytes,
but now it will refuse to set 'phys' that long. Arguably trying to set
such 'phys' is suspect anyways.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: uinput - fix setting up device name
David Herrmann [Fri, 11 Feb 2011 09:10:44 +0000 (01:10 -0800)]
Input: uinput - fix setting up device name

The check for non-empty device name was botched since we tried to account
for extra space for the terminating zero at the same time. Convert to
kstrndup() to avoid this problem.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Acked-by: Aristeu Rozanski <aris@ruivo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - read whole message to make CHG low
Iiro Valkonen [Fri, 4 Feb 2011 08:51:05 +0000 (00:51 -0800)]
Input: atmel_mxt_ts - read whole message to make CHG low

Read the whole message, as reading just the first byte isn't always
guaranteed to clear the message.

Signed-off-by: Iiro Valkonen <iiro.valkonen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: atmel_mxt_ts - get rid of qt602240 prefixes in names
Iiro Valkonen [Thu, 3 Feb 2011 07:21:58 +0000 (23:21 -0800)]
Input: atmel_mxt_ts - get rid of qt602240 prefixes in names

Change prefixes from qt602240 to mxt to reflect that the driver supports
whole line of mXT touchscreens.

Signed-off-by: Iiro Valkonen <iiro.valkonen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: qt602240_ts - rename to atmel_mxt_ts
Dmitry Torokhov [Thu, 3 Feb 2011 07:21:58 +0000 (23:21 -0800)]
Input: qt602240_ts - rename to atmel_mxt_ts

Since the driver will be supporting whole range of Atmels mXT touchscreen
controllers we better rename it to atmel_mxt_ts.

Acked-by: Iiro Valkonen <iiro.valkonen@atmel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: tegra-kbc - add function keymap
Rakesh Iyer [Fri, 18 Feb 2011 16:38:02 +0000 (08:38 -0800)]
Input: tegra-kbc - add function keymap

Add Fn keymap support to allow for internal processing of Fn keys.

Signed-off-by: Rakesh Iyer <riyer@nvidia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: matrix_keypad - increase the limit of rows and columns
Trilok Soni [Fri, 11 Feb 2011 08:44:41 +0000 (00:44 -0800)]
Input: matrix_keypad - increase the limit of rows and columns

Some keyboard controllers support more than 16 columns and rows.
Increase the limit to 32.

Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Acked-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom - fix error path in wacom_probe()
Alexander Strakh [Fri, 11 Feb 2011 08:44:41 +0000 (00:44 -0800)]
Input: wacom - fix error path in wacom_probe()

If we fail to retrieve HID descriptor we need to free allocated URB so
jump to proper label to do that.

Signed-off-by: Alexander Strakh <strakh@ispras.ru>
Acked-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: ads7846 - check proper condition when freeing gpio
Dmitry Torokhov [Fri, 4 Feb 2011 08:37:26 +0000 (00:37 -0800)]
Input: ads7846 - check proper condition when freeing gpio

When driver uses custom pendown detection method gpio_pendown is not
set up and so we should not try to free it, otherwise we are presented
with:

------------[ cut here ]------------
WARNING: at drivers/gpio/gpiolib.c:1258 gpio_free+0x100/0x12c()
Modules linked in:
[<c0061208>] (unwind_backtrace+0x0/0xe4) from [<c0091f58>](warn_slowpath_common+0x4c/0x64)
[<c0091f58>] (warn_slowpath_common+0x4c/0x64) from [<c0091f88>](warn_slowpath_null+0x18/0x1c)
[<c0091f88>] (warn_slowpath_null+0x18/0x1c) from [<c024e610>](gpio_free+0x100/0x12c)
[<c024e610>] (gpio_free+0x100/0x12c) from [<c03e9fbc>](ads7846_probe+0xa38/0xc5c)
[<c03e9fbc>] (ads7846_probe+0xa38/0xc5c) from [<c02cff14>](spi_drv_probe+0x18/0x1c)
[<c02cff14>] (spi_drv_probe+0x18/0x1c) from [<c028bca4>](driver_probe_device+0xc8/0x184)
[<c028bca4>] (driver_probe_device+0xc8/0x184) from [<c028bdc8>](__driver_attach+0x68/0x8c)
[<c028bdc8>] (__driver_attach+0x68/0x8c) from [<c028b4c8>](bus_for_each_dev+0x48/0x74)
[<c028b4c8>] (bus_for_each_dev+0x48/0x74) from [<c028ae08>](bus_add_driver+0xa0/0x220)
[<c028ae08>] (bus_add_driver+0xa0/0x220) from [<c028c0c0>](driver_register+0xa8/0x134)
[<c028c0c0>] (driver_register+0xa8/0x134) from [<c0050550>](do_one_initcall+0xcc/0x1a4)
[<c0050550>] (do_one_initcall+0xcc/0x1a4) from [<c00084e4>](kernel_init+0x14c/0x214)
[<c00084e4>] (kernel_init+0x14c/0x214) from [<c005b494>](kernel_thread_exit+0x0/0x8)
---[ end trace 4053287f8a5ec18f ]---

Also rearrange ads7846_setup_pendown() to have only one exit point
returning success.

Reported-by: Sourav Poddar <sourav.poddar@ti.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Reviewed-by: Charulatha V <charu@ti.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoRevert "Input: do not pass injected events back to the originating handler"
Dmitry Torokhov [Thu, 3 Feb 2011 07:04:27 +0000 (23:04 -0800)]
Revert "Input: do not pass injected events back to the originating handler"

This reverts commit 5fdbe44d033d059cc56c2803e6b4dbd8cb4e5e39.

Apparently there exist userspace programs that expect to be able to
"loop back" and distribute to readers events written into
/dev/input/eventX and this change made for the benefit of SysRq
handler broke them. Now that SysRq uses alternative method to suppress
filtering of the events it re-injects we can safely revert this change.

Reported-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
13 years agoInput: sysrq - rework re-inject logic
Dmitry Torokhov [Thu, 3 Feb 2011 06:59:54 +0000 (22:59 -0800)]
Input: sysrq - rework re-inject logic

Internally 'disable' the filter when re-injecting Alt-SysRq instead
of relying on input core to suppress delivery of injected events
to the originating handler.

This allows to revert commit 5fdbe44d033d059cc56c2803e6b4dbd8cb4e5e39
which causes problems with existing userspace programs trying to
loopback the events via evdev.

Reported-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: serio - clear pending rescans after sysfs driver rebind
Duncan Laurie [Thu, 3 Feb 2011 06:59:54 +0000 (22:59 -0800)]
Input: serio - clear pending rescans after sysfs driver rebind

When rebinding a serio driver via sysfs drvctl interface it is
possible for an interrupt to trigger after the disconnect of the
existing driver and before the binding of the new driver.  This will
cause the serio interrupt handler to queue a rescan event which will
disconnect the new driver immediately after it is attached.

This change removes pending rescans from the serio event queue after
processing the drvctl request but before releasing the serio mutex.

Reproduction involves issuing a rebind of device port from psmouse
driver to serio_raw driver while generating input to trigger
interrupts.  Then checking to see if the corresponding
i8042/serio4/driver is correctly attached to the serio_raw driver
instead of psmouse.

Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: rotary_encoder - use proper irqflags
Alexander Stein [Thu, 3 Feb 2011 06:59:54 +0000 (22:59 -0800)]
Input: rotary_encoder - use proper irqflags

IORESOURCE_IRQ_* is wrong for irq_request, use the correct IRQF_* instead.

Signed-off-by: Alexander Stein <alexander.stein@informatik.tu-chemnitz.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: wacom_w8001 - report resolution to userland
Ping Cheng [Tue, 1 Feb 2011 05:06:38 +0000 (21:06 -0800)]
Input: wacom_w8001 - report resolution to userland

Serial devices send both pen and touch data through the same logical
port. Since we scaled touch to pen maximum, we use pen resolution
for touch as well here.

This is under the assumption that pen and touch share the same physical
surface. In the case when a small physical dimensional difference occurs
between pen and touch, we assume the tolerance for touch point precision
is higher than pen and the difference is within touch point tolerance.

A per-MT tool based resolution mechanism should be introduced if the
above assumption does not hold true for the pen and touch devices any
more.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: input-polldev - fix a couple of typos
Dmitry Torokhov [Tue, 1 Feb 2011 05:06:34 +0000 (21:06 -0800)]
Input: input-polldev - fix a couple of typos

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: switch completely over to the new versions of get/setkeycode
Dmitry Torokhov [Tue, 1 Feb 2011 05:06:39 +0000 (21:06 -0800)]
Input: switch completely over to the new versions of get/setkeycode

All users of old style get/setkeycode methids have been converted so
it is time to retire them.

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoInput: dvb-usb-remote - convert to new style of get/setkeycode
Dmitry Torokhov [Tue, 1 Feb 2011 05:06:39 +0000 (21:06 -0800)]
Input: dvb-usb-remote - convert to new style of get/setkeycode

Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoMerge commit 'v2.6.38-rc3' into next
Dmitry Torokhov [Tue, 1 Feb 2011 05:16:22 +0000 (21:16 -0800)]
Merge commit 'v2.6.38-rc3' into next

13 years agoInput: wm831x-ts - remove use of ternary operator
Mark Brown [Tue, 1 Feb 2011 05:09:25 +0000 (21:09 -0800)]
Input: wm831x-ts - remove use of ternary operator

While being applied the driver was modified to add use of the ternary
operator. Write the conditionals out longhand as I find it terribly
unhelpful for legibility.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
13 years agoLinux 2.6.38-rc3
Linus Torvalds [Tue, 1 Feb 2011 03:05:49 +0000 (13:05 +1000)]
Linux 2.6.38-rc3