Commit Graph

1943 Commits

Author SHA1 Message Date
Linus Torvalds 1d3c6ff44a Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (224 commits)
  ARM: remove 'select GENERIC_TIME'
  ARM: 6136/1: ARCH_REQUIRE_GPIOLIB selects GENERIC_GPIO
  ARM: 6074/1: oprofile: convert from sysdev to platform device
  ARM: 6073/1: oprofile: remove old files and update KConfig
  ARM: 6072/1: oprofile: use perf-events framework as backend
  ARM: 6071/1: perf-events: allow modules to query the number of hardware counters
  ARM: 6070/1: perf-events: add support for xscale PMUs
  ARM: 6069/1: perf-events: use numeric ID to identify PMU
  ARM: 6064/1: pmu: register IRQs at runtime
  ARM: Optionally allow ARMv6 to use 'normal, bufferable' memory for DMA
  ARM: 6134/1: Handle instruction cache maintenance fault properly
  ARM: nwfpe: allow debugging output to be configured at runtime
  ARM: rename mach_cpu_disable() to platform_cpu_disable()
  ARM: 6132/1: PL330: Add common core driver
  ARM: 6094/1: Extend cache-l2x0 to support the 16-way PL310
  ARM: Move memory mapping into mmu.c
  ARM: Ensure meminfo is sorted prior to sanity_check_meminfo
  ARM: Remove useless linux/bootmem.h includes
  ARM: convert /proc/cpu/aligment to seq_file
  arm: use asm-generic/scatterlist.h
  ...
2010-05-19 11:37:22 -07:00
Dmitry Torokhov a62f0d27b4 Input: psmouse - small formatting changes to better follow coding style
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 11:31:51 -07:00
Dmitry Torokhov 83ba9ea8a0 Input: synaptics - set dimensions as reported by firmware
Newer Synaptics firmware allows to query maximim dimensions reported by
device, let's use this data.

Tested-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:15:29 -07:00
Dmitry Torokhov a083632eaf Input: elantech - relax signature checks
Apparently there are Elantech touchpads that report non-zero in the 2nd byte
of their signature. Adjust the detection routine so that if 2nd byte is
zero and 3rd byte contains value that is not a valid report rate, we still
assume that signature is valid.

Tested-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:15:13 -07:00
Dmitry Torokhov d4ae84a84b Input: elantech - enforce common prefix on messages
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:15:02 -07:00
Julia Lawall f8300ab8c3 Input: wistron_btns - switch to using kmemdup()
Use kmemdup when some other buffer is immediately copied into the
allocated region.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:14:38 -07:00
Julia Lawall 641d446f89 Input: usbtouchscreen - switch to using kmemdup()
Use kmemdup when some other buffer is immediately copied into the
allocated region.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:14:31 -07:00
Jacob Pan 685afae025 Input: do not force selecting i8042 on Moorestown
Moorestown does not have i8042 based keyboard controller, so give
an option to deselect i8042 for non-pc mid.

Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:14:25 -07:00
Haojian Zhuang ee6e54e2ae Input: 88pm860x_onkey - remove invalid irq number assignment
Irq number of onkey is assigned twice. The second assignment is wrong.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:14:10 -07:00
Matthew Garrett dba06b839a Input: i8042 - add a PNP entry to the aux device list
Windows checks for an ALPS PS/2 device in PNP. Add it on the off-chance
that there's a machine that expresses this without also providing a
compatibility ID.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:14:04 -07:00
Matthew Garrett 09fac079d9 Input: i8042 - add some extra PNP keyboard types
Some Japanese machines declare their keyboard with a different PNP ID.
Add it to the list of probed device IDs. While we're at it, add all the
other IDs that Windows binds to - we'll probably never see them in the
real world, but it doesn't hurt.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:13:50 -07:00
Manuel Lauss af8b01b039 Input: wm9712 - fix wm97xx_set_gpio() logic
WM97XX_GPIO_HIGH is not a bitmap and should to be treated as such.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 10:13:35 -07:00
Dmitry Torokhov 8d0bc2b456 Merge commit 'v2.6.34' into next 2010-05-19 10:12:41 -07:00
Ben Dooks 504d36e91a Input: s3c24xx_ts - depend on SAMSUNG_DEV_TS and update menu entry
Make the driver depend on either ARCH_S3C2410 (as legacy) or the new
device selection of SAMSUNG_DEV_TS.

Change the menuconfig name to reflect this driver is now handling more
devices that just the s3c2410.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 18:25:52 +09:00
Naveen Krishna 91df77d7b5 Input: s3c24xx_ts - Add FEAT for Samsung touchscreen support
This patch adds a feature bit field in the touchscreen driver for Samsung SoCs.
Which can be used to distinguish the TSADC module features.

Signed-off-by: Naveen Krishna Ch <ch.naveen@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
[ben-linux@fluff.org: minor fix to title]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 18:25:45 +09:00
Naveen Krishna 658ad39ea9 Input: s3c24xx_ts - Implement generic GPIO configuration callback
This patch implements generic GPIO configuration function in Samsung
touchscreen driver. And makes the touchscreen driver s3c24xx-ts.c
generic to all the Samsung SoCs.

Signed-off-by: Naveen Krishna Ch <ch.naveen@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
[ben-linux@fluff.org: fixed title ]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-19 18:25:36 +09:00
Maurus Cuelenaere 73e59b1d6b ARM: SAMSUNG: Move mach/ts.h to plat/ts.h
This moves mach-s3c2410/include/mach/ts.h to plat-samsung/include/plat/ts.h in
order to prepare for s3c64xx support in the touchscreen driver.

Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2010-05-19 18:25:07 +09:00
Grant Likely 61c7a080a5 of: Always use 'struct device.of_node' to get device node pointer.
The following structure elements duplicate the information in
'struct device.of_node' and so are being eliminated.  This patch
makes all readers of these elements use device.of_node instead.

(struct of_device *)->node
(struct dev_archdata *)->prom_node (sparc)
(struct dev_archdata *)->of_node (powerpc & microblaze)

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2010-05-18 16:10:44 -06:00
Linus Torvalds 1014cfe2fb Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  lockdep: Reduce stack_trace usage
  lockdep: No need to disable preemption in debug atomic ops
  lockdep: Actually _dec_ in debug_atomic_dec
  lockdep: Provide off case for redundant_hardirqs_on increment
  lockdep: Simplify debug atomic ops
  lockdep: Fix redundant_hardirqs_on incremented with irqs enabled
  lockstat: Make lockstat counting per cpu
  i8253: Convert i8253_lock to raw_spinlock
2010-05-18 08:17:35 -07:00
Arnd Bergmann 55929332c9 drivers: Push down BKL into various drivers
These are the last remaining device drivers using
the ->ioctl file operation in the drivers directory
(except from v4l drivers).

[fweisbec: drop i8k pushdown as it has been done from
procfs pushdown branch already]

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
2010-05-17 05:27:41 +02:00
Linus Torvalds aa86f26bd8 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: ad7877 - keep dma rx buffers in seperate cache lines
  Input: psmouse - reset all types of mice before reconnecting
  Input: elantech - use all 3 bytes when checking version
  Input: iforce - fix Guillemot Jet Leader 3D entry
  Input: iforce - add Guillemot Jet Leader Force Feedback
2010-05-13 07:28:43 -07:00
Oskar Schirmer 3843384a05 Input: ad7877 - keep dma rx buffers in seperate cache lines
With dma based spi transmission, data corruption is observed
occasionally. With dma buffers located right next to msg and
xfer fields, cache lines correctly flushed in preparation for
dma usage may be polluted again when writing to fields in the
same cache line.

Make sure cache fields used with dma do not share cache lines
with fields changed during dma handling. As both fields are part
of a struct that is allocated via kzalloc, thus cache aligned,
moving the fields to the 1st position and insert padding for
alignment does the job.

Signed-off-by: Oskar Schirmer <os@emlix.com>
Signed-off-by: Daniel Glöckner <dg@emlix.com>
Signed-off-by: Oliver Schneidewind <osw@emlix.com>
Signed-off-by: Johannes Weiner <jw@emlix.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
[dtor@mail.ru - changed to use ___cacheline_aligned as suggested
 by akpm]
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-13 00:43:32 -07:00
Dmitry Torokhov ef110b24e2 Input: psmouse - reset all types of mice before reconnecting
Synaptics hardware requires resetting device after suspend to ram
in order for the device to be operational. The reset lives in
synaptics-specific reconnect handler, but it is not being invoked
if synaptics support is disabled and the device is handled as a
standard PS/2 device (bare or IntelliMouse protocol).

Let's add reset into generic reconnect handler as well.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-13 00:43:26 -07:00
Dmitry Torokhov 504e8beed1 Input: elantech - use all 3 bytes when checking version
Apparently all 3 bytes returned by ETP_FW_VERSION_QUERY are significant
and should be taken into account when matching hardware version/features.

Tested-by: Eric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-13 00:43:19 -07:00
Eric Miao 25646d70a0 input: remove obsolete {corgi,spitz,tosa}kbd.c
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2010-05-11 17:25:01 +02:00
Eric Miao cb8f3c7dea [ARM] pxa/tosa: move CONFIG_KEYBOARD_TOSA_USE_EXT_KEYCODES to mach/Kconfig
Tosa is now able to use generic matrix keypad driver instead of the deprecated
tosakbd.c, where CONFIG_KEYBOARD_TOSA_USE_EXT_KEYCODES is still useful.  Move
it to mach/Kconfig.

Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2010-05-11 17:25:00 +02:00
Eric Miao 5700929d22 input: remove now deprecated corgi_ts.c touchscreen driver
The corgi touchscreen is now deprecated in favour of the generic ads7846.c
driver. The noise reduction technique used in corgi_ts.c, which is to wait
till vsync before ADC sampling, is also integrated into ads7846 driver now.
Provided that the original driver is not generic and is difficult to maintain,
it will be removed now.

Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
2010-05-11 17:24:57 +02:00
Marek Vasut 513d8be988 Input: iforce - fix Guillemot Jet Leader 3D entry
USB ID entry for "Guillemot Jet Leader 3D" in iforce-main.c did not match
one used in iforce-usb.c

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-10 22:54:39 -07:00
Marek Vasut d861f7bf14 Input: iforce - add Guillemot Jet Leader Force Feedback
This device features a RUDDER on the knob.

Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-10 22:54:24 -07:00
Janusz Krzysztofik 29453932d8 input: serio: add support for Amstrad Delta serial keyboardport
The patch introduces a serio driver that supports a keyboard serial port found
on the Amstrad Delta videophone board.

After initializing the hardware, the driver reads its input data from a buffer
filled in by the board FIQ (Fast Interrupt Request) handler.

Standard AT keyboard driver (atkbd) will be used on top of the serio layer for
handling the E3 keyboard (called mailboard) connected to the port. Since the
device generated scancodes differ from what the atkbd expects, a custom key
code to scan code table must be loaded from userspace for the keyboard to be
useable.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-05-05 11:11:10 -07:00
Linus Torvalds 1d7aec3041 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: joydev - allow binding to button-only devices
  Input: elantech - ignore high bits in the position coordinates
  Input: elantech - allow forcing Elantech protocol
  Input: elantech - fix firmware version check
  Input: ati_remote - add some missing devices from lirc_atiusb
  Input: eeti_ts - cancel pending work when going to suspend
  Input: Add support of Synaptics Clickpad device
  Revert "Input: ALPS - add signature for HP Pavilion dm3 laptops"
  Input: psmouse - ignore parity error for basic protocols
2010-05-05 07:53:18 -07:00
Christoph Fritz 26a6931ba7 Input: joydev - allow binding to button-only devices
Dance pads don't have an axis, so allow this kind of controllers
to be used via legacy joystick interface.

Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:51:28 -07:00
Sriramakrishnan Govindarajan 30ba3ead05 Input: add keypad driver for keys interfaced to TCA6416
This patch implements a simple Keypad driver that functions
as an I2C client. It handles key press events for keys
connected to TCA6416 I2C based IO expander.

Signed-off-by: Sriramakrishnan <srk@ti.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:50:42 -07:00
Florian Ragwitz e938fbfd4a Input: elantech - ignore high bits in the position coordinates
In older versions of the elantech hardware/firmware those bits always
were unset, so it didn't actually matter, but newer versions seem to
use those high bits for something else, screwing up the coordinates
we report to the input layer for those devices.

Signed-off-by: Florian Ragwitz <rafl@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:35:11 -07:00
Florian Ragwitz f81bc788ff Input: elantech - allow forcing Elantech protocol
Apparently hardware vendors now ship elantech touchpads with different version
magic. This options allows for them to be tested easier with the current driver
in order to add their magic to the whitelist later.

Signed-off-by: Florian Ragwitz <rafl@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:34:33 -07:00
Florian Ragwitz 225c61aad3 Input: elantech - fix firmware version check
The check determining whether device should use 4- or 6-byte packets
was trying to compare firmware with 2.48, but was failing on majors
greater than 2. The new check ensures that versions like 4.1 are
checked properly.

Signed-off-by: Florian Ragwitz <rafl@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:34:13 -07:00
Jarod Wilson 5132088697 Input: ati_remote - add some missing devices from lirc_atiusb
The (out-of-tree) lirc_atiusb driver has a much longer list of devices
it supports.  Some of them look like they may just be guesses at possible
device IDs, but a few are definitely confirmed devices.  This adds the
nVidia-branded RF receiver and the X10 Lola Wireless Video Sender device
(which contains an RF receiver) to the list of devices in ati_remote.

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:33:22 -07:00
Eric Miao 16b32e0c9e Input: remove obsolete {corgi,spitz,tosa}kbd.c
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-05-03 23:32:22 -07:00
Ingo Molnar 53ba4f2fa7 Merge commit 'v2.6.34-rc6' into core/locking 2010-05-03 09:17:01 +02:00
Dmitry Torokhov f3192090df Input: kbtab - do not advertise unsupported events
The device does not emit EV_MSC/MSC_SERIAL nor EV_KEY/BTN_MIDDLE events
so it should not mark them as supported in capabilities bitmaps. This
still leaves BTN_TOOL_PEN and BTN_TOUCH events being processed in a funky
manner.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:47 -07:00
Dmitry Torokhov 331cb022d3 Input: kbtab - simplify kbtab_disconnect()
There is no need to check whether kbtab structure is attached to the
interface; if it isn't and we are called we have much bigger problems.
Also no need to call usb_kill_urb() in kbtab_disconnect() since it
is being called in kbtab_close().

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:36 -07:00
Axel Lin ee7aa6ce41 Input: kbtab - fix incorrect size parameter in usb_buffer_free
The size allocated by usb_buffer_alloc() is 8, however the size passed
to usb_buffer_free() is 10.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:30 -07:00
Dmitry Torokhov 893d1cdd53 Input: acecad - don't advertise mouse events
The device does not emit events for left/right/middle mouse buttons
so it should not mark them as supported in capabilities bitmaps.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:24 -07:00
Dmitry Torokhov b426571cea Input: acecad - fix some formatting issues
Also switch to using input_set_abd_params() helper.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:19 -07:00
Dmitry Torokhov 5492f6f801 Input: acecad - simplify usb_acecad_disconnect()
There is no need to check whether acecad structure is attached to the
interface; if it isn't and we are called we have much bigger problems.
Also no need to call usb_kill_urb() in usb_acecad_disconnect() since
it is being called in usb_acecad_close().

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:15 -07:00
Axel Lin 2ef2ed5976 Input: acecad - fix incorrect size parameter in usb_buffer_free
The size allocated by usb_buffer_alloc() is 8, however the size passed to
usb_buffer_free() in usb_acecad_disconnect() is 10.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 22:34:09 -07:00
Daniel Mack 7fbef0d1e2 Input: eeti_ts - cancel pending work when going to suspend
This fixes a race between the suspend code and input events.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 00:44:20 -07:00
Takashi Iwai 5f57d67da8 Input: Add support of Synaptics Clickpad device
The new type of touchpads can be detected via a new query command
0x0c. The clickpad flags are in cap[0]:4 and cap[1]:0 bits.

When the device is detected, the driver now reports only the left
button as the supported buttons so that X11 driver can detect that
the device is Clickpad. A Clickpad device gives the button events
only as the middle button. The kernel driver morphs to the left
button. The real handling of Clickpad is done rather in X driver
side.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-20 00:42:40 -07:00
Dmitry Torokhov 6d327cb03f Revert "Input: ALPS - add signature for HP Pavilion dm3 laptops"
This reverts commit 5e28d8eb68 since
the magic knock does not work for this model of the touchpad and the
device stays in PS/2 compatibility mode.
2010-04-20 00:37:21 -07:00
Dmitry Torokhov 6b9d363c49 Input: psmouse - ignore parity error for basic protocols
Observing behavior of the other OS it appears that parity errors reported
by the keyboard controller are being ignored and the data is processed
as usual. Let's do the same for standard PS/2 protocols (bare, Intellimouse
and Intellimouse Explorer) to provide better compatibility. Thsi should fix
teh following bug:

	https://bugzilla.kernel.org/show_bug.cgi?id=6105

Thanks for Damjan Jovanovic for locating the source of issue and ideas
for the patch.

Tested-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-19 00:50:42 -07:00
Linus Torvalds 00eef7bd01 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: wacom - switch mode upon system resume
  Revert "Input: wacom - merge out and in prox events"
  Input: matrix_keypad - allow platform to disable key autorepeat
  Input: ALPS - add signature for HP Pavilion dm3 laptops
  Input: i8042 - spelling fix
  Input: sparse-keymap - implement safer freeing of the keymap
  Input: update the status of the Multitouch X driver project
  Input: clarify the no-finger event in multitouch protocol
  Input: bcm5974 - retract efi-broken suspend_resume
  Input: sparse-keymap - free the right keymap on error
2010-04-15 11:49:55 -07:00
Ping Cheng 014f61504a Input: wacom - switch mode upon system resume
When Wacom devices wake up from a sleep, the switch mode command
(wacom_query_tablet_data) is needed before wacom_open is called.
wacom_query_tablet_data should not be executed inside wacom_open
since wacom_open is called more than once during probe.

wacom_retrieve_hid_descriptor is removed from wacom_resume due
to the fact that the required descriptors are stored properly
upon system resume.

Reported-and-tested-by: Anton Anikin <Anton@Anikin.name>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-15 11:16:10 -07:00
Adam Bennett 422dee56b8 Input: add driver for hampshire serial touchscreens
Adds support for Hampshire TSHARC serial touchscreens.  Implements
Hampshire's 4-byte communication protocol.

Signed-off-by: Adam Bennett <abennett72@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:27:41 -07:00
Barry Song 6c04d7b3cf Input: ad714x - add support for the AD7143/8/7A parts
Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:27:22 -07:00
Bryan Wu 31a6296333 Input: add Analog Devices AD714x captouch input driver
AD7142 and AD7147 are integrated capacitance-to-digital converters
(CDCs) with on-chip environmental calibration for use in systems
requiring a novel user input method. The AD7142 and AD7147 can interface
to external capacitance sensors implementing functions such as buttons,
scrollwheels, sliders, touchpads and so on.

The chips don't restrict the specific usage. Depending on the hardware
connection, one special target board can include one or several these
components. The platform_data for the device's "struct device" holds
these information. The data-struct defined in head file descript the
hardware feature of button/scrollwheel/slider/touchpad components on
target boards, which need be filled in the arch/mach-/.

As the result, the driver is independent of boards. It gets the
components layout from the platform_data, registers related devices,
fullfills the algorithms and state machines for these components and
report related input events to up level.

Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Barry Song <21cnbao@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:27:16 -07:00
Wolfram Sang a5b33e6a20 Input: lm8323 - do not leave dangling client data pointer
Do not leave dangling client data pointers when unbinding device from the
driver or when binding fails for some reason.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:26:44 -07:00
Wolfram Sang d6372b706e Input: tsc2007 - do not leave dangling clientdata pointer
Do not leave dangling client data pointers when unbinding device from the
driver.

Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:26:40 -07:00
Bryan Wu b91c4be730 Input: add PCF8574 I2C keypad input device driver
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:25:10 -07:00
Eric Miao 2adaabd471 Input: remove now deprecated corgi_ts.c touchscreen driver
The corgi touchscreen is now deprecated in favour of the generic ads7846.c
driver. The noise reduction technique used in corgi_ts.c, which is to wait
till vsync before ADC sampling, is also integrated into ads7846 driver now.
Provided that the original driver is not generic and is difficult to maintain,
it will be removed now.

Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:25:05 -07:00
Ping Cheng ab687b18aa Input: wacom - streamline 2-finger touch support
Clean up 2-finger touch support. This still needs to be converted to
proper multi-touch protocol.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:24:56 -07:00
Dmitry Torokhov 252f77698f Input: wacom - use get_unaligned to access unaligned data
Also get rid of wacom_le16_to_cpu() and wacom_be16_to_cpu() helpers and
ise le16_to_cpup() and be16_to_cpup() directly.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:24:42 -07:00
Dmitry Torokhov 95dd3b30ce Input: wacom - get rid of wacom_combo structure
Now that we moved input device from struct wacom to struct wacom_wac,
presence of wacom_combo just complicats things for no good reason.
Let's get rid of it and simply pass URB length to wacom_wac_irq().

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:24:35 -07:00
Dmitry Torokhov 8da23fc113 Input: wacom - get rid of input event wrappers
Input event interface is pretty stable so let's get rig of wrappers
for input_event() and fiends and call them directly. This will simplify
and speed up code a bit.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:24:23 -07:00
Dmitry Torokhov 73a97f4f6e Input: wacom - fix some formatting issues
Fix identation of switch/case statements so they follow style used by the
rest of the kernel.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:24:16 -07:00
Dmitry Torokhov 51269fe86c Input: wacom - do not allocate wacom_wac separately
There is no reason for allocating struct wacom_wac separately from
struct wacom since both have the same lifetime rules and are not
shared. Also make 'open' field a boolean.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:24:11 -07:00
Ping Cheng 4492efffff Input: wacom - share pen info with touch of the same ID
Touch enbaled devices share the same product ID with pen. However,
we do not want to post touch events while pen is in prox. To do so,
we used to keep a local static variable to keep track of if pen is
in prox or not. This works fine for Tablet PC devices since there
is only one device attached. With the newer touch enabled regular
tablets, we can not make this assumption any more, i.e, one system
may have more than one identical tablet plugged in.

This patch adds an new entry, shared, into the struct wacom_wac so
touch data can access pen data to locally. This solution assumes
the two tools (touch and pen) of the same ID will be probed one
after the other without interruption in between by another Wacom
device of the same ID.
2010-04-13 23:24:06 -07:00
Ping Cheng 3b57ca0f80 Input: wacom - merge out and in prox events
Process out and in prox events for Graphire and Tablet PC devices
in the same loop to simplify the data parsing logic.

[re-applying after revert since other patches are based on this one]

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:22:31 -07:00
Dmitry Torokhov 56f3e1c057 Merge branch 'for-linus' into next 2010-04-13 23:21:38 -07:00
Ping Cheng 38101475f9 Input: wacom - switch mode upon system resume
When Wacom devices wake up from a sleep, the switch mode command
(wacom_query_tablet_data) is needed before wacom_open is called.
wacom_query_tablet_data should not be executed inside wacom_open
since wacom_open is called more than once during probe.

wacom_retrieve_hid_descriptor is removed from wacom_resume due
to the fact that the required descriptors are stored properly
upon system resume.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Reported-and-tested-by: Anton Anikin <Anton@Anikin.name>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:14:31 -07:00
Dmitry Torokhov afb567e3fd Revert "Input: wacom - merge out and in prox events"
This reverts commit 776943fd6f as it
causes issues with ISDv4 E3 touchscreens:

	https://bugzilla.kernel.org/show_bug.cgi?id=15670

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-13 23:08:58 -07:00
H Hartley Sweeten 9d32c30542 Input: matrix_keypad - allow platform to disable key autorepeat
In an embedded system the matrix_keypad driver might be used to
interface with an external control panel and not an actual keyboard.
On the control panel some of the keys could be used to turn on/off
various functions.  If key autorepeat is enabled this causes the
function to quickly toggle between the on and off states and makes
operation difficult.

Add an option in the platform-specific data to disable the key
autorepeat.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-05 23:02:00 -07:00
Chase Douglas 5e28d8eb68 Input: ALPS - add signature for HP Pavilion dm3 laptops
Tested by a user running Ubuntu 9.10 in the following bug report.

BugLink: http://bugs.launchpad.net/bugs/545307

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-05 23:01:55 -07:00
Dominik Brodowski 2c860a1101 Input: i8042 - spelling fix
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-04-05 23:01:20 -07:00
Tejun Heo 5a0e3ad6af include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files.  percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.

percpu.h -> slab.h dependency is about to be removed.  Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability.  As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.

  http://userweb.kernel.org/~tj/misc/slabh-sweep.py

The script does the followings.

* Scan files for gfp and slab usages and update includes such that
  only the necessary includes are there.  ie. if only gfp is used,
  gfp.h, if slab is used, slab.h.

* When the script inserts a new include, it looks at the include
  blocks and try to put the new include such that its order conforms
  to its surrounding.  It's put in the include block which contains
  core kernel includes, in the same order that the rest are ordered -
  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
  doesn't seem to be any matching order.

* If the script can't find a place to put a new include (mostly
  because the file doesn't have fitting include block), it prints out
  an error message indicating which .h file needs to be added to the
  file.

The conversion was done in the following steps.

1. The initial automatic conversion of all .c files updated slightly
   over 4000 files, deleting around 700 includes and adding ~480 gfp.h
   and ~3000 slab.h inclusions.  The script emitted errors for ~400
   files.

2. Each error was manually checked.  Some didn't need the inclusion,
   some needed manual addition while adding it to implementation .h or
   embedding .c file was more appropriate for others.  This step added
   inclusions to around 150 files.

3. The script was run again and the output was compared to the edits
   from #2 to make sure no file was left behind.

4. Several build tests were done and a couple of problems were fixed.
   e.g. lib/decompress_*.c used malloc/free() wrappers around slab
   APIs requiring slab.h to be added manually.

5. The script was run on all .h files but without automatically
   editing them as sprinkling gfp.h and slab.h inclusions around .h
   files could easily lead to inclusion dependency hell.  Most gfp.h
   inclusion directives were ignored as stuff from gfp.h was usually
   wildly available and often used in preprocessor macros.  Each
   slab.h inclusion directive was examined and added manually as
   necessary.

6. percpu.h was updated not to include slab.h.

7. Build test were done on the following configurations and failures
   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
   distributed build env didn't work with gcov compiles) and a few
   more options had to be turned off depending on archs to make things
   build (like ipr on powerpc/64 which failed due to missing writeq).

   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
   * powerpc and powerpc64 SMP allmodconfig
   * sparc and sparc64 SMP allmodconfig
   * ia64 SMP allmodconfig
   * s390 SMP allmodconfig
   * alpha SMP allmodconfig
   * um on x86_64 SMP allmodconfig

8. percpu.h modifications were reverted so that it could be applied as
   a separate patch and serve as bisection point.

Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
2010-03-30 22:02:32 +09:00
Dmitry Torokhov 2e2e3b96d9 Input: sparse-keymap - implement safer freeing of the keymap
Allow calling sparse_keymap_free() before unregistering input device
whithout risk of racing with EVIOCGETKEYCODE and EVIOCSETKEYCODE.
This makes life of drivers writers easier.

Acked-by: Yong Wang <yong.y.wang@intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-21 23:00:51 -07:00
Henrik Rydberg d90e6f6aad Input: bcm5974 - retract efi-broken suspend_resume
With the recent system-wide improvements on suspend/resume and EFI
booting the suspend_resume method of the bcm5974 has broken. When
waking up from the S3 state on the MacBookAir, the trackpad is found
in a yet unknown state, unable to switch to the proper multitouch
mode. The result is a frozen touchpad, and a flood of errors of the
kind

	bcm5974: bad trackpad package, length: 8.

This patch retracts the reset_resume method altogether, falling back
on the generic unbind/rebind functionality of the usb layer until
further investigations can be made as how to reset the device when
booting from efi.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-20 00:08:20 -07:00
Yong Wang 88fcf710c1 Input: sparse-keymap - free the right keymap on error
'map' is allocated in sparse_keymap_setup() and it it the one that should
be freed on error instead of 'keymap'.

Signed-off-by: Yong Wang <yong.y.wang@intel.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-19 23:03:09 -07:00
Linus Torvalds a818d8e431 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: i8042 - add ALDI/MEDION netbook E1222 to qurik reset table
  Input: ALPS - fix stuck buttons on some touchpads
  Input: wm831x-on - convert to use genirq
  Input: ads7846 - add wakeup support
  Input: appletouch - fix integer overflow issue
  Input: ad7877 - increase pen up imeout
  Input: ads7846 - add support for AD7843 parts
  Input: bf54x-keys - fix system hang when pressing a key
  Input: alps - add support for the touchpad on Toshiba Tecra A11-11L
  Input: remove BKL, fix input_open_file() locking
  Input: serio_raw - remove BKL
  Input: mousedev - remove BKL
  Input: add driver for TWL4030 vibrator device
  Input: enable remote wakeup for PNP i8042 keyboard ports
  Input: scancode in get/set_keycodes should be unsigned
  Input: i8042 - use platfrom_create_bundle() helper
  Input: wacom - merge out and in prox events
  Input: gamecon - fix off by one range check
  Input: wacom - replace WACOM_PKGLEN_PENABLED
2010-03-14 11:13:54 -07:00
Christoph Fritz 31968ecf58 Input: i8042 - add ALDI/MEDION netbook E1222 to qurik reset table
ALDI/MEDION netbook E1222 needs to be in the reset quirk list for
its touchpad's proper function.

Reported-by: Michael Fischer <mifi@gmx.de>
Signed-off-by: Christoph Fritz <chf.fritz@googlemail.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-13 22:37:59 -08:00
Martin Buck c91ed059a0 Input: ALPS - fix stuck buttons on some touchpads
Enable button release event redirection to the device that got the
button press not only for touchpads with interleaved protocols, but
unconditionally for all Alps touchpads. This is required at least
for the touchpads in Dell Inspiron 8200 and Latitude d630.

Signed-off-by: Martin Buck <mb-tmp-yvahk-vachg@gromit.dyndns.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-13 22:37:43 -08:00
Linus Torvalds c32da02342 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (56 commits)
  doc: fix typo in comment explaining rb_tree usage
  Remove fs/ntfs/ChangeLog
  doc: fix console doc typo
  doc: cpuset: Update the cpuset flag file
  Fix of spelling in arch/sparc/kernel/leon_kernel.c no longer needed
  Remove drivers/parport/ChangeLog
  Remove drivers/char/ChangeLog
  doc: typo - Table 1-2 should refer to "status", not "statm"
  tree-wide: fix typos "ass?o[sc]iac?te" -> "associate" in comments
  No need to patch AMD-provided drivers/gpu/drm/radeon/atombios.h
  devres/irq: Fix devm_irq_match comment
  Remove reference to kthread_create_on_cpu
  tree-wide: Assorted spelling fixes
  tree-wide: fix 'lenght' typo in comments and code
  drm/kms: fix spelling in error message
  doc: capitalization and other minor fixes in pnp doc
  devres: typo fix s/dev/devm/
  Remove redundant trailing semicolons from macros
  fix typo "definetly" -> "definitely" in comment
  tree-wide: s/widht/width/g typo in comments
  ...

Fix trivial conflict in Documentation/laptops/00-INDEX
2010-03-12 16:04:50 -08:00
Mark Brown afadb8e08c Input: wm831x-on - convert to use genirq
Now that the WM831x core has been converted to use genirq for the
interrupt controller there is no need for the client drivers to
use a WM831x-specific API rather than just calling genirq directly.

Also fixes a leak of the IRQ during init failure - the error 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: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-11 00:02:53 -08:00
Ranjith Lohithakshan fdba2bb1f2 Input: ads7846 - add wakeup support
Add wakeup support to the ads7846 driver. Platforms can enable wakeup
capability by setting the wakeup flag in ads7846_platform_data. With this
patch the ads7846 driver can be used to wake the system from suspend.

Signed-off-by: Ranjith Lohithakshan <ranjithl@ti.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-11 00:02:43 -08:00
Vadim Zaliva 04b4b88cca Input: appletouch - fix integer overflow issue
When reading data from Geyser 2 touchpads used on post Oct 2005 Apple
PowerBooks the driver was casting X and Y coordinates values to
'signed char'. Testing on one of such PowerBooks I have noticed that
touchpad always generates positive values, but some of them are greater
that 127, and thus, when cast to 'signed char' being interpreted as
a negative.

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

Signed-off-by: Vadim Zaliva <lord@crocodile.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-11 00:00:56 -08:00
Michael Hennerich 4eb6f91b95 Input: ad7877 - increase pen up imeout
The time interval between consecutive interrupts depends on a number of
tunables: first_conversion_delay, acquisition_time, averaging and foremost
the pen_down_acc_interval.

Since the mod_timer() action for the PEN UP event happens in the
spi_async() callback function, latencies incurred by the spi bus drivers
also need to be taken into account.

So all in all, give the PEN UP event a bit more wiggle room and increase
timeout to 100ms.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:13:30 -08:00
Michael Hennerich 06a09124b5 Input: ads7846 - add support for AD7843 parts
The AD7873 is almost identical to the ADS7846; the only difference is
related to the Power Management bits PD0 and PD1.  This results in a
slightly different PENIRQ enable behavior.  For the AD7873, VREF should
be turned off during differential measurements.

So, add the AD7873/43 to the list of driver supported devices, and prevent
VREF usage during differential/ratiometric conversion modes.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:12:45 -08:00
Mike Frysinger 9e49f6c133 Input: bf54x-keys - fix system hang when pressing a key
We need to use the nosync version of disable_irq so that we don't hang in
the IRQ handler as we don't ACK the interrupt until later.  This used to
work regardless, but at some point, the IRQ behavior changed.  Not sure
when exactly.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:09:07 -08:00
Thomas Bächler eb8bff85c5 Input: alps - add support for the touchpad on Toshiba Tecra A11-11L
Signed-off-by: Thomas Bächler <thomas@archlinux.org>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:06:07 -08:00
Arnd Bergmann 2f2177c8da Input: remove BKL, fix input_open_file() locking
Holding the BKL in input_open_file seems pointless because it does not
protect against updates of input_table, and all open functions from the
underlying drivers have proper mutex locking.

This makes input_open_file take the input_mutex when accessing
the table and no lock when calling into the lower function.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:05:57 -08:00
Thadeu Lima de Souza Cascardo 77554b4d1f Input: serio_raw - remove BKL
serio_raw open function already uses a mutex. Also change formatting
a bit.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:05:48 -08:00
Thadeu Lima de Souza Cascardo c90c6a885a Input: mousedev - remove BKL
There's no need for BKL in mousedev, relevan protection is provided by
a private mutex.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 22:05:09 -08:00
Jari Vanhala 3dd1b39497 Input: add driver for TWL4030 vibrator device
TWL4030 Vibrator implemented via Force Feedback interface.
This uses MFD TWL4030 codec and own dynamic workqueue.

Signed-off-by: Jari Vanhala <ext-jari.vanhala@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 00:30:20 -08:00
Alan Stern 3e6e15a862 Input: enable remote wakeup for PNP i8042 keyboard ports
This patch (as1355) enables remote wakeup by default on PNP i8042
keyboard ports.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-09 00:30:15 -08:00
Dmitry Torokhov 58b939959d Input: scancode in get/set_keycodes should be unsigned
The HID layer has some scan codes of the form 0xffbc0000 for logitech
devices which do not work if scancode is typed as signed int, so we need
to switch to unsigned it instead. While at it keycode being signed does
not make much sense either.

Acked-by: Márton Németh <nm127@freemail.hu>
Acked-by: Matthew Garrett <mjg@redhat.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-08 23:19:15 -08:00
Dmitry Torokhov ec62e1c8dd Input: i8042 - use platfrom_create_bundle() helper
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-08 23:18:08 -08:00
Dmitry Torokhov ce67eef6a1 Merge commit 'v2.6.34-rc1' into for-linus 2010-03-08 23:17:32 -08:00
Russell King 988addf82e Merge branch 'origin' into devel-stable
Conflicts:
	arch/arm/mach-mx2/devices.c
	arch/arm/mach-mx2/devices.h
	sound/soc/pxa/pxa-ssp.c
2010-03-08 20:21:04 +00:00
Jiri Kosina 318ae2edc3 Merge branch 'for-next' into for-linus
Conflicts:
	Documentation/filesystems/proc.txt
	arch/arm/mach-u300/include/mach/debug-macro.S
	drivers/net/qlge/qlge_ethtool.c
	drivers/net/qlge/qlge_main.c
	drivers/net/typhoon.c
2010-03-08 16:55:37 +01:00
Haojian Zhuang 6985403138 input: Support onkey in 88pm860x
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2010-03-07 22:17:20 +01:00
Haojian Zhuang 2afa62ea76 mfd: Use genirq in 88pm860x
Use genirq to simplify IRQ handling in 88pm860x. Remove the interface of
mask/free IRQs on 88pm860x. All these work is taken by genirq. Update the
touchscreen driver of 88pm860x since IRQ handling is changed.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2010-03-07 22:17:20 +01:00
Haojian Zhuang 866a98ae6e input: Enable touch on 88pm860x
Enable touchscreen driver for the 88pm860x multi function core.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2010-03-07 22:17:05 +01:00
Uwe Kleine-König 2a83319182 input/mc13783-ts: don't use deprecated mc13783 API calls
mc13783_ackirq is deprecated, use the drop in replacement mc13783_irq_ack.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
Cc: Valentin Longchamp <valentin.longchamp@epfl.ch>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Cc: Luotao Fu <l.fu@pengutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-06 11:26:47 -08:00
Ping Cheng 776943fd6f Input: wacom - merge out and in prox events
Process out and in prox events for Graphire and Tablet PC devices
in the same loop to simplify the data parsing logic.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-05 00:36:10 -08:00
Dan Carpenter 5bc923c505 Input: gamecon - fix off by one range check
It should be >= GC_MAX not > GC_MAX.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-05 00:32:21 -08:00
Thomas Gleixner ced918eb74 i8253: Convert i8253_lock to raw_spinlock
i8253_lock needs to be a real spinlock in preempt-rt, i.e. it can
not be converted to a sleeping lock.

Convert it to raw_spinlock and fix up all users.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
Cc: Jens Axboe <jens.axboe@oracle.com>
LKML-Reference: <20100217163751.030764372@linutronix.de>
2010-03-02 10:28:38 +01:00
Ping Cheng 57e413d95b Input: wacom - replace WACOM_PKGLEN_PENABLED
Replacing WACOM_PKGLEN_PENABLED with WACOM_PKGLEN_GRAPHIRE since
they both represent the same value, 8. This value will be used
for both Tablet PC and Bamboo with touch devices.

Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-03-01 23:53:26 -08:00
Eric Miao da8065ac3e [ARM] locomo: avoid unnecessary cascaded keyboard IRQ
It is not necessary and is over-complicated for IRQ_LOCOMO_KEY to
be a cascaded IRQ of IRQ_LOCOMO_KEY_BASE. Removed and introduced
locomokbd_{open,close} for masking/unmasking of the keyboard IRQ.

Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
2010-03-02 07:40:49 +08:00
Linus Torvalds 8724fdb53d Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (62 commits)
  Input: atkbd - release previously reserved keycodes 248 - 254
  Input: add KEY_WPS_BUTTON definition
  Input: ads7846 - add regulator support
  Input: winbond-cir - fix suspend/resume
  Input: gamecon - use pr_err() and friends
  Input: gamecon - constify some of the setup structures
  Input: gamecon - simplify pad type handling
  Input: gamecon - simplify coordinate calculation for PSX
  Input: gamecon - fix some formatting issues
  Input: gamecon - add rumble support for N64 pads
  Input: wacom - add device type to device name string
  Input: s3c24xx_ts - report touch only when stylus is down
  Input: s3c24xx_ts - re-enable IRQ on resume
  Input: wacom - constify product features data
  Input: wacom - use per-device instance of wacom_features
  Input: sh_keysc - enable building on SH-Mobile ARM
  Input: wacom - get features from driver info
  Input: rotary-encoder - set gpio direction for each requested gpio
  Input: sh_keysc - update the driver with mode 6
  Input: sh_keysc - switch to using bitmaps
  ...
2010-03-01 10:38:09 -08:00
Linus Torvalds bc53515413 Merge branch 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'acpica' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
  ACPI: replace acpi_integer by u64
  ACPICA: Update version to 20100121.
  ACPICA: Remove unused uint32_struct type
  ACPICA: Disassembler: Remove obsolete "Integer64" field in parse object
  ACPICA: Remove obsolete ACPI_INTEGER (acpi_integer) type
  ACPICA: Predefined name repair: fix NULL package elements
  ACPICA: AcpiGetDevices: Eliminate unnecessary _STA calls
  ACPICA: Update all ACPICA copyrights and signons to 2010
  ACPICA: Update for new gcc-4 warning options
2010-03-01 10:36:22 -08:00
Dmitry Torokhov 35858adbfc Merge branch 'next' into for-linus 2010-02-28 23:55:20 -08:00
Tony Luck 8d6339b8a5 Pull rmia32 into release branch 2010-02-26 12:04:13 -08:00
Dmitry Torokhov 4b70858ba8 Input: atkbd - release previously reserved keycodes 248 - 254
Keycodes in 248 - 254 range were reserved for special needs (scrolling)
of atkbd driver. Now that the driver has been switched to use unsigned
short keycodes instead of unsigned char we can release this range back
into pull. We keep code 255 (ATKBD_KEY_NULL) reserved since users may
have been using it to silence keys they do not care about since atkbd
silently drops scancodes mapped to this keycode.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-26 00:23:59 -08:00
Grazvydas Ignotas 91143379b0 Input: ads7846 - add regulator support
The ADS7846/TSC2046 touchscreen controllers can (and usually are)
connected to various regulators for power, so add regulator support.

Valid regulator will now be required, so boards without complete
regulator setup should either disable regulator framework or enable
CONFIG_REGULATOR_DUMMY.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-25 02:07:07 -08:00
David Härdeman 197d4db752 Input: winbond-cir - fix suspend/resume
This fixes suspend/resume problem with the driver caused by the
fact that ACPI _DIS method would completely power off the SP3
module leaving the output lines (including IRQ lines) in an
undefined state. This could cause spurious interrupts and requires
reinitializing hardware from scratch during resume.

This fixes:

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

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-24 02:10:38 -08:00
Linus Torvalds 627fa177a1 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: usbtouchscreen - extend coordinate range for Generaltouch devices
  Input: polldev can cause crash in case when polling disabled
2010-02-22 08:48:06 -08:00
Roy Yin eb083ba260 Input: usbtouchscreen - extend coordinate range for Generaltouch devices
Generaltouch protocol allows for coordinates in [0, 0xffff] range and
there are devices reporting coordinates as high as 0x7fff so let's update
the driver to reflect that.

Signed-off-by: Roy Yin <yhch@generaltouch.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 23:02:51 -08:00
Dmitry Torokhov a1e1274747 Input: gamecon - use pr_err() and friends
Tested-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 22:10:12 -08:00
Dmitry Torokhov af930d6462 Input: gamecon - constify some of the setup structures
Tested-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 22:10:07 -08:00
Dmitry Torokhov 0995174dda Input: gamecon - simplify pad type handling
Instead of having array bitmasks by type for all gamepads have explicit
type field in every pad structure.

Tested-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 22:10:01 -08:00
Dmitry Torokhov 315543fd11 Input: gamecon - simplify coordinate calculation for PSX
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 22:09:55 -08:00
Dmitry Torokhov d38fcb9690 Input: gamecon - fix some formatting issues
Fix formatting of 'switch' statements and change the code to stay closer
to 80 column limit where it does not hurt code readability.

Tested-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 22:09:49 -08:00
Scott Moreau 7aa9e0e826 Input: gamecon - add rumble support for N64 pads
Add force-feedback support for N64 pads with rumble pak accessory installed.
Actually we do not check for the presence of rumble pad but simply assume it
is installed and expect the device to ignore FF commands if rumble pak is
missing.

Signed-off-by: Scott Moreau <oreaus@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-21 22:09:43 -08:00
Samu Onkalo d9c4f84699 Input: polldev can cause crash in case when polling disabled
When polled input device is opened and closed and there are no other
users of polled device, the workqueue is created and destroyed in
every open / close operation. It is probable that at some point
dynamic allocation of internal parts of the workqueue cause changes to the
workqueue.

When a work is queued to the workqueue the work struct contains pointers
to the workqueue data. If the workqueue has been changed and the work
has never been queued to the new workqueue, work-struct contains pointers
to the non-existing workqueue. This will cause crash at the work
cancellation during device close since cancellation of a work assumes
that the workqueue exists.

To prevent that, work struct is cleaned up at device close. This keeps
work struct clean for the next use.

Signed-off-by: Samu Onkalo <samu.p.onkalo@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-20 01:23:55 -08:00
Ping Cheng 49b764aebd Input: wacom - add device type to device name string
Devices supporting both pen and touch features share the same product ID,
but presented as 2 separate input devices. By adding device type to device
name string we can help userspace applications and users differentiate
between them. 'Finger' is used for the touch since touch has been used as
a suffix by userland hotplugging services.

Signed-off-by: Jason Childs <oblivian@users.sourceforge.net>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-20 01:22:44 -08:00
Vasily Khoruzhick 23c239be22 Input: s3c24xx_ts - report touch only when stylus is down
Currently driver reports touches when it gets (1 << ts.shift) samples,
even if stylus is up, which is incorrect. We should only report coordinates
and touch condition when stylus is down.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-20 01:22:36 -08:00
Vasily Khoruzhick 2f09586557 Input: s3c24xx_ts - re-enable IRQ on resume
IRQ should be re-enabled on resume, otherwise driver stops reporting events.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-19 01:25:57 -08:00
Dmitry Torokhov e87a344d0e Input: wacom - constify product features data
Features are not supposed to be modified; devices use their own private copies,
so let's mark them const.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-19 01:25:41 -08:00
Jason Childs e33da8a548 Input: wacom - use per-device instance of wacom_features
Since we mangle data in wacom_features when dealing with certain devices let's
use a private (per-device) instance of wacom_features in wacom_wac. This way
same product ID can support more than one type of device, such as pen and touch,
and not interfere with each other.

Signed-off-by: Jason Childs <oblivian@users.sourceforge.net>
Signed-off-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-19 01:25:16 -08:00
Linus Torvalds 83c5aac175 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: add KEY_RFKILL
  Input: i8042 - fix KBC jam during hibernate
2010-02-18 08:31:14 -08:00
Alan Jenkins c2d1a2a11b Input: i8042 - fix KBC jam during hibernate
633aae2 "Input: i8042 - switch to using dev_pm_ops" removed handling
for PMSG_THAW, since we do not need to do anything during freeze and
thus it was thougt that thaw is not needed as well. However, there is
a period when interrupts are kept off, and if key happens to be pressed
during that time KBC becomes jammed. To avoid the jam we simply need
to poll KBC once during thaw.

Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-18 02:07:34 -08:00
Magnus Damm 4e45ad5e89 Input: sh_keysc - enable building on SH-Mobile ARM
Update the Kconfig entry for the sh_keysc driver to
enable build on SH-Mobile ARM platforms.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-16 21:51:43 -08:00
Linus Torvalds bbf8fc6179 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: psmouse - make sure we don't schedule reconnects after cleanup
2010-02-11 14:03:42 -08:00
Bastian Blank b036f6fb3a Input: wacom - get features from driver info
Get the features information from the driver info of the usb device id
structure provided by the caller. The device ids and feature structs
are strong coupled using indices.

Signed-off-by: Bastian Blank <waldi@debian.org>
Tested-by: Jason Childs <oblivian@users.sourceforge.net>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 23:31:37 -08:00
Andrew Clayton 5deeac99fe Input: rotary-encoder - set gpio direction for each requested gpio
Even with the correct pin mux settings, you still need to explicitly
set the gpio direction. Call gpio_direction_input() after each
requested gpio.

Signed-off-by: Andrew Clayton <andrew@digital-domain.net>
Signed-off-by: Mark Somerville <mark@scottishclimbs.com>
Tested-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 23:19:48 -08:00
Magnus Damm 8f8be2439c Input: sh_keysc - update the driver with mode 6
Add mode 6 support to the sh_keysc driver. Also update the KYOUTDR mask
value to include all 16 register bits.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 23:04:18 -08:00
Magnus Damm 324e5ade15 Input: sh_keysc - switch to using bitmaps
Use bitmaps instead of using 32-bit integers to keep track of the key
states. With this change in place the driver supports key pads with
more than 32 keys.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 23:04:13 -08:00
Magnus Damm 2b14a808fb Input: sh_keysc - factor out hw access functions
Update the sh_keysc driver to factor out the register access functions
sh_keysc_read(), sh_keysc_write() together with sh_keysc_level_mode().
This makes the code a bit easier to follow.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 23:04:07 -08:00
Eric Miao b63de38591 Input: schedule corgi_ssp and corgi_ts to be removed
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Acked-by: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 23:01:14 -08:00
Eric Miao 74e7e725e4 Input: mark {corgi,spitz,tosa}kbd drivers deprecated
Provided that now keyboards on these devices are fully supported by
generic GPIO based matrix keypad driver, mark these hardcoded and
difficult to maintain drivers as deprecated.

Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-10 22:58:03 -08:00
Daniel Mack 3ad2f3fbb9 tree-wide: Assorted spelling fixes
In particular, several occurances of funny versions of 'success',
'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
'beginning', 'desirable', 'separate' and 'necessary' are fixed.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Joe Perches <joe@perches.com>
Cc: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-02-09 11:13:56 +01:00
Tony Luck 32974ad490 [IA64] Remove COMPAT_IA32 support
This has been broken since May 2008 when Al Viro killed altroot support.
Since nobody has complained, it would appear that there are no users of
this code (A plausible theory since the main OSVs that support ia64 prefer
to use the IA32-EL software emulation).

Signed-off-by: Tony Luck <tony.luck@intel.com>
2010-02-08 10:42:17 -08:00
Dmitry Torokhov a9f0c38197 Input: psmouse - make sure we don't schedule reconnects after cleanup
Set state of the device as "initializing" during and after cleanup
to ensure that unsolicited data from the device is not passed on.
We especially want to avoid processing new device announcements
"0xaa 0x00" that can come up before we perform reconnect operation.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-07 23:53:41 -08:00
Stefan Weil 0747e3bc54 Fix spelling of 'platform' in log messages
Replace platfrom -> platform.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-02-05 12:22:34 +01:00
Adam Buchbinder c9404c9c39 Fix misspelling of "should" and "shouldn't" in comments.
Some comments misspell "should" or "shouldn't"; this fixes them. No code changes.

Signed-off-by: Adam Buchbinder <adam.buchbinder@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2010-02-05 12:22:30 +01:00
Mika Westerberg 9e3af04f87 Input: gpio-keys - add support for disabling gpios through sysfs
Now gpio-keys input driver exports 4 new attributes to userland through
sysfs:
	/sys/devices/platform/gpio-keys/keys [ro]
	/sys/devices/platform/gpio-keys/switches [ro]
	/sys/devices/platform/gpio-keys/disabled_keys [rw]
	/sys/devices/platform/gpio-keys/disables_switches [rw]

With these attributes, userland program can read which keys and
switches can be disabled and then disable/enable them as needed.
Keys and switches are exported as stringified bitmap of codes
(keycodes or switch codes). For example keys 15, 89, 100, 101,
102 are exported as: '15,89,100-102'.

Description of the attributes:
	keys - bitmap of keys which can be disabled
	switches - bitmap of switches which can be disabled
	disabled_keys - bitmap of currently disabled keys
			(bit 1 means disabled, 0 enabled)
	disabled_switches - bitmap of currently disabled switches
			(bit 1 means disabled, 0 enabled)

Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:50:44 -08:00
Dmitry Torokhov 3d7bbd4575 Input: mark input interfaces as non-seekable
Seeking does not make sense for input interfaces such as evdev and joydev
so let's use nonseekable_open to mark them non-seekable.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:31:44 -08:00
Dmitry Torokhov daf8a96b2d Input: uinput - mark as non-seekable
Seeking does not make sense for uinput so let's use nonseekable_open
to mark the device non-seekable.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:31:10 -08:00
Dmitry Torokhov 0b7024ac4d Input: add match() method to input hanlders
Get rid of blacklist in input handler structure and instead allow
handlers to define their own match() method to perform fine-grained
filtering of supported devices.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:25:19 -08:00
Ondrej Zary 1e87a43080 Input: usbtouchscreen - fix leaks and check return value of usb_submit_urb()
Fix urb leak in error path of initialization and make sure we handle
errors from initial usb_submit_urb().

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:22:01 -08:00
Ondrej Zary 5197424cdc Input: usbtouchscreen - add NEXIO (or iNexio) support
Add support for NEXIO (or iNexio) USB touchscreens to usbtouchscreen
driver.  Tested with NEX170MRT 17" LCD monitor with integrated touchscreen
(with xserver-xorg-input-evtouch 0.8.8-1):

T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 54 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=1870 ProdID=0001 Rev= 1.00
S:  Manufacturer=iNexio
S:  Product=iNexio USB
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=(none)
E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=255ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

No datasheet is available, this was written by capturing some data with
SniffUSB in Windows: http://www.rainbow-software.org/linux_files/nexio/

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:21:56 -08:00
Ondrej Zary f4a5e359c4 Input: usbtouchscreen - find input endpoint automatically
Find input enpoint automatically instead of assuming that the first one is
OK.  This is needed for devices with multiple endpoints such as iNexio
where the first endpoint might be output.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:21:52 -08:00
Ondrej Zary fea4d14b69 Input: usbtouchscreen - convert from usb_device to usb_interface
Convert usbtouchscreen from storing usb_device to usb_interface. This is
needed for multi-interface touchscreen devices such as iNexio.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-02-04 00:21:45 -08:00
Alberto Panizzo 76cdc083f4 Input: add imx-keypad driver to support the IMX Keypad Port
The IMX family of Application Processors is shipped with a Keypad Port
supported by this driver.

The peripheral can control up to an 8x8 matrix key pad where all the
scanning is done via software.  The hardware provides two interrupts:
one for key presses (KDI) and one for all key releases (KRI). There is
also a simple circuit for glitch reduction (said for synchronization)
made by two series of 3 D-latches clocked by the keypad-clock that
stabilize the interrupts sources. KDI and KRI are fired only if the
respective conditions are maintained for at last 4 keypad-clock cycle.

Since those circuits are poor for a correct debounce process (the
keypad-clock frequency is 32K and bounces longer than 94us are not
masked) the driver, when an interrupt arrives, samples the matrix
with a period of 10ms until the readins are stable for
IMX_KEYPAD_SCANS_FOR_STABILITY times (currently set at 3). After
getting stable result appropriate events are sent through the input
stack.

If some keys are maintained pressed, the driver continues to scan
the matrix with a longer period (60ms) to catch possible multiple
key presses without overloading the cpu. This process ends when all
keys are released.

This driver is tested to build in kernel or as a module and follow
the specification of Freescale Application processors:
i.MX25 i.MX27 i.MX31 i.MX35 i.MX51 especially tested on i.MX31.

Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-31 17:52:57 -08:00
Dmitry Torokhov ef7995f4e4 Input: implement input filters
Sometimes it is desirable to suppress certain events from reaching
input handlers and thus user space. One such example is Mac mouse
button emulation code which catches certain key presses and converts
them into button clicks as if they were emitted by a virtual mouse.
The original key press events should be completely suppressed,
otherwise user space will be confused, and while keyboard driver
does it on its own evdev is blissfully unaware of this arrangement.

This patch adds notion of 'filter' to the standard input handlers,
which may flag event as filtered thus preventing it from reaching
other input handlers. Filters don't (nor will they ever) have a
notion of priority relative to each other, input core will run all
of them first and any one of them may mark event as filtered.

This patch is inspired by similar patch by Matthew Garret but the
implementation and intended usage are quite different.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-30 01:47:41 -08:00
Thadeu Lima de Souza Cascardo 45cdba4d37 Input: uinput - remove BKL from uinput_open function
Commit 8702965848 pushed down the BKL
into uinput open function. However, there's nothing that needs locking
in there.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-29 23:55:18 -08:00
Linus Torvalds 499a267371 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: update multi-touch protocol documentation
  Input: add the ABS_MT_PRESSURE event
  Input: winbond-cir - remove dmesg spam
  Input: lifebook - add another Lifebook DMI signature
  Input: ad7879 - support auxiliary GPIOs via gpiolib
2010-01-29 11:15:32 -08:00
Mark Brown dcfc32babb Input: wm97xx - provide coordinate logs for accelerated I/O
This aids debug of problematic systems.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-28 22:38:30 -08:00
Henrik Rydberg cb6ecf6f7a Input: add the ABS_MT_PRESSURE event
For pressure-based multi-touch devices, a direct way to send sensor
intensity data per finger is needed. This patch adds the ABS_MT_PRESSURE
event to the MT protocol.

Requested-by: Yoonyoung Shim <jy0922.shim@samsung.com>
Requested-by: Mika Kuoppala <mika.kuoppala@nokia.com>
Requested-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-28 22:32:45 -08:00
David Härdeman 93fb84b50f Input: winbond-cir - remove dmesg spam
I missed converting one dev_info call to deb_dbg before submitting the driver.
Without this change, a message will be printed to dmesg for each button press
if a RC6 remote is used.

Signed-off-by: David Härdeman <david@hardeman.nu>
Cc: stable <stable@kernel.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-28 22:32:38 -08:00
Jon Dodgson 57b5e2ae5b Input: lifebook - add another Lifebook DMI signature
There are many many ways one can capitalize "Lifebook B Series"...

Signed-off-by: Jon Dodgson <crayzeejon@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-28 00:29:03 -08:00
Lin Ming 439913fffd ACPI: replace acpi_integer by u64
acpi_integer is now obsolete and removed from the ACPICA code base,
replaced by u64.

Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
2010-01-28 01:47:33 -05:00
Benjamin Valentin 121873059f Input: xpad - add rumble support for original xbox controller
Signed-off-by: Benjamin Valentin <benpicco@zedat.fu-berlin.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-24 22:42:10 -08:00
Tobias Klauser ce841b945b Input: xilinx_ps2 - use resource_size
Use the resource_size inline function instead of manually calculating
the resource size.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Acked-by: John Linn <john.linn@xilinx.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-24 22:41:49 -08:00
Dmitry Torokhov 7755726fe9 Merge commit 'v2.6.33-rc5' into next 2010-01-21 23:55:25 -08:00
Magnus Damm 3bf127637e Input: sh_keysc - add mode 4 and mode 5 support
Add Mode 4 and Mode 5 support to the SH_KEYSC driver. These modes allow
slightly larger key pad matrixes.

While at it, make use of resource_size().

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-21 00:03:56 -08:00
Michael Hennerich 5a9003db1f Input: ADP5588 - add support for ADP5587 devices
The ADP5587 is quite similar to the ADP5588 but features a greater I/O
voltage range and lacks the Dual Light Sensor Interface.  This new part
is also supported by this driver.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-19 00:32:17 -08:00
Michael Hennerich ec51b7f538 Input: ad7879 - support auxiliary GPIOs via gpiolib
Drop the simple fancy sysfs hooks for the aux GPIOs and expose these via
the gpiolib interface so that other drivers can use them.

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-19 00:31:51 -08:00
Linus Torvalds 3b3ef30833 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: sentelic - fix left/right horizontal scroll mapping
  Input: pmouse - move Sentelic probe down the list
  Input: add compat support for sysfs and /proc capabilities output
  Input: i8042 - add Dritek quirk for Acer Aspire 5610.
  Input: xbox - do not use GFP_KERNEL under spinlock
  Input: psmouse - fix Synaptics detection when protocol is disabled
  Input: bcm5974 - report ABS_MT events
  Input: davinci_keyscan - add device_enable method to platform data
  Input: evdev - be less aggressive about sending SIGIO notifies
  Input: atkbd - fix canceling event_work in disconnect
  Input: serio - fix potential deadlock when unbinding drivers
  Input: gf2k - fix &&/|| confusion in gf2k_connect()
2010-01-15 14:51:57 -08:00
H Hartley Sweeten a5abd95cc0 Input: ep93xx_keypad - cleanup and use matrix_keypad helpers
Use struct matrix_keymap_data to supply the keymap from the platform code
and matrix_keypad_build_keymap() to initialize the keymap.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-13 00:37:16 -08:00
Tai-hwa Liang c332e9fcc5 Input: sentelic - fix left/right horizontal scroll mapping
Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-13 00:28:18 -08:00
Tai-hwa Liang 4a18b3ab6e Input: pmouse - move Sentelic probe down the list
Sentelic probes confuse IBM trackpoints so they stop responding to
TP_READ_ID command. See:

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

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

Signed-off-by: Tai-hwa Liang <avatar@sentelic.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-13 00:28:10 -08:00
Dmitry Torokhov 15e184afa8 Input: add compat support for sysfs and /proc capabilities output
Input core displays capabilities bitmasks in form of one or more longs printed
in hex form and separated by spaces. Unfortunately it does not work well
for 32-bit applications running on 64-bit kernels since applications expect
that number is "worth" only 32 bits when kernel advances by 64 bits.

Fix that by ensuring that output produced for compat tasks uses 32-bit units.

Reported-and-tested-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-12 09:30:24 -08:00
Márton Németh 9cb3ce52ca Input: make USB device ids constant
The id_table field of the struct usb_device_id is constant in <linux/usb.h>
so it makes sense to mark the initialization data also constant.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-11 00:08:19 -08:00
Elliott Sales de Andrade e6edbdc52b Input: i8042 - add Dritek quirk for Acer Aspire 5610.
Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-11 00:07:30 -08:00
Dmitry Torokhov dd38d6889d Input: xbox - do not use GFP_KERNEL under spinlock
xbox_play_effect() is called while holding dev->event_lock with
interrupts disabled and thus may not use GFP_KERNEL when submitting
urbs.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-09 23:44:03 -08:00
Márton Németh c6d5709384 Input: xen-kbdfront - make xenbus device ids constant
The ids field of the struct xenbus_device_id is constant in <linux/xen/xenbus.h>
so it makes sense to mark xenkbd_ids also constant.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-09 23:29:27 -08:00
Márton Németh 35c4b918a6 Input: ns558 - make pnp device ids constant
The id_table field of the struct pnp_driver is constant in <linux/pnp.h>
so it makes sense to mark pnp_devids also constant.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-09 23:29:13 -08:00
Márton Németh a9844b1850 Input: make PCI device ids constant
The id_table field of the struct pci_driver is constant in <linux/pci.h>
so it makes sense to mark initialization data also constant.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-09 23:28:52 -08:00
Márton Németh ef9a16f15d Input: xilinx_ps2 - make Open Firmware device ids constant
The match_table field of the struct of_device_id is constant
in <linux/of_platform.h> so it makes sense to mark xps2_of_match
also constant.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-09 23:28:41 -08:00
Márton Németh ce7b39a181 Input: make i2c device ids constant
The id_table field of the struct i2c_driver is defined as constant
in <linux/i2c.h> so it makes sense to mark the initialization data also
constant.

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-09 23:28:33 -08:00
Daniel Drake e4e6efd2df Input: psmouse - fix Synaptics detection when protocol is disabled
For configurations where Synaptics hardware is present but the Synaptics
extensions support is not compiled in, the mouse is reprobed and a new
device is allocated on every suspend/resume.

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

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

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

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-07 01:53:30 -08:00
Dmitry Torokhov 8cab9ba104 Input: elo - switch to using dev_xxx() when printing messages
Also fix formatting of "switch" statements.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 23:54:40 -08:00
Dmitry Torokhov a9a1f9c315 Input: atkbd - switch to dev_err() and friends
dev_err(), dev_warn() and dev_dbg() ensure consistency in driver messages.
Also switch to using bool where appropriate and fix some formatting issues.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 23:54:32 -08:00
Henrik Rydberg 6f2701b79f Input: bcm5974 - report ABS_MT events
Make bcm5974 report raw multi-touch (MT) data in the form of ABS_MT events.

[dtor@mail.ru: get rid of module option, always report all events]
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:33:46 -08:00
Dmitry Torokhov 3032458e38 Input: psmouse - remove unused 'autocal' parameter from hgpk protocol
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:33:28 -08:00
Dmitry Torokhov 92a3a58788 Input: cleanse capabilities bits before registering device
To avoid showing garbage in capability bits, zero out bitmasks absent
from dev->evbit in case driver inadvertently leaves some garbage there.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:27:29 -08:00
Dmitry Torokhov 4f93df4085 Input: automatically reset KEY_RESERVED bit for all input devices
KEY_RESERVED is not supposed to be reported to userspace but rather to
mark unused entries in keymaps.

Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:26:20 -08:00
Dmitry Torokhov fc99ec6f4b Input: gameport - switch to using pr_xxx() and dev_xxx()
pr_xxx() and dev_xxx() helpers ensure that all messages emitted by the
module have consistent prefixes, so let's use them. Also fix some
formatting issues.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:24:21 -08:00
Dmitry Torokhov d621af4730 Input: gameport - make use of list_first_entry() helper
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:24:09 -08:00
Dmitry Torokhov 361b7b5b03 Input: gameport - let device core tell us if device was registered
No need to keep track of it by ourselves.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:23:51 -08:00
Dmitry Torokhov cac9169bf7 Input: serio - use pr_xxx() and dev_xxx() helpers
pr_xxx() and dev_xxx() helpers ensure that all messages emitted by the
module have consistent prefixes, so let's use them. Also fix some
formatting issues.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:22:41 -08:00
Dmitry Torokhov 4516c81832 Input: serio - use list_first_entry() helper
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:22:23 -08:00
Dmitry Torokhov ddf1ffbd40 Input: serio - let device core tell us if device was registered
No need to keep track of it by ourselves.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:22:00 -08:00
Dmitry Torokhov 386d877298 Input: serio - use device core to create 'id' attribute group
Instead of creating 'id' sysfs attribute group by ourselves rely on
device core to do that for us.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:19:48 -08:00
Miguel Aguilar 861a64428c Input: davinci_keyscan - add device_enable method to platform data
Add a function pointer in the platform data of the DaVinci Keyscan driver
called device_enable, in order to perform board specific actions when
the device is initialized, like setup the PINMUX configuration.

Signed-off-by: Miguel Aguilar <miguel.aguilar@ridgerun.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:17:11 -08:00
Adam Jackson 30a589fde0 Input: evdev - be less aggressive about sending SIGIO notifies
When using realtime signals, we'll enqueue one signal for every event.
This is unfortunate, because (for example) keyboard presses are three
events: key, msc scancode, and syn.  They'll be enqueued fast enough in
kernel space that all three events will be ready to read by the time
userspace runs, so the first invocation of the signal handler will read
all three events, but then the second two invocations still have to run
to do no work.

Instead, only send the SIGIO notification on syn events.  This is a
slight abuse of SIGIO semantics, in principle it ought to fire as soon
as any events are readable.  But it matches evdev semantics, which is
more important since SIGIO is rather vaguely defined to begin with.

Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:17:04 -08:00
Dmitry Torokhov 0ef7a26af1 Input: atkbd - fix canceling event_work in disconnect
We need to first unregister input device and only then cancel event work
since events can arrive (and cause event work to get scheduled again)
until input_unregister_device() returns.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:16:14 -08:00
Eric W. Biederman 59b015133c Input: serio - fix potential deadlock when unbinding drivers
sysfs_remove_group() waits for sysfs attributes to be removed, therefore
we do not need to worry about driver-specific attributes being accessed
after driver has been detached from the device. In fact, attempts to take
serio->drv_mutex in attribute methods may lead to the following deadlock:

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

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

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-06 00:14:32 -08:00
Roel Kluin abf2a117c6 Input: gf2k - fix &&/|| confusion in gf2k_connect()
This always evaluates to true.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2010-01-01 18:45:52 -08:00
Linus Torvalds 4e58fb7305 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: iforce - wait for command completion when closing the device
  Input: twl4030-pwrbutton - switch to using threaded IRQ
  Input: twl4030_keypad - switch to using threaded IRQ
  Input: lifebook - add CONFIG_DMI dependency
  Input: wistron - fix test for CONFIG_PM
  Input: psmouse - fix compile warning in hgpk module
  Input: matrix-keypad - handle cases when GPIOs can't be wakeup sources
  Input: iforce - fix oops on device disconnect
  Input: ff-memless - add notion of direction to for rumble effects
  Input: ff-memless - another fix for signed to unsigned overflow
  Input: ff-memless - start playing FF effects immediately
  Input: serio - do not mark kseriod freezable anymore
  Input: speed up suspend/shutdown for PS/2 mice and keyboards
2009-12-31 11:12:35 -08:00