Commit Graph

831 Commits

Author SHA1 Message Date
Linus Torvalds
6e5565f949 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: (34 commits)
  Input: i8042 - non-x86 build fix
  Input: pxa27x_keypad - also enable on PXA3xx
  Input: pxa27x_keypad - add debounce_interval to the keypad platform data
  Input: pxa27x_keypad - use device resources for I/O memory mapping and IRQ
  Input: pxa27x_keypad - enable rotary encoders and direct keys
  Input: pxa27x_keypad - introduce pxa27x_keypad_config()
  Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix keys
  Input: pxa27x_keypad - remove pin configuration from the driver
  Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard)
  Input: constify function pointer tables (seq_operations)
  Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux list
  Input: i8042 - enable DMI quirks on x86-64
  Input: i8042 - add Dritek quirk for Acer Aspire 9110
  Input: add input event to APM event bridge
  Input: mousedev - use BIT_MASK instead of BIT
  Input: remove duplicate includes
  Input: remove cdev from input_dev structure
  Input: remove duplicated headers in drivers/char/keyboard.c
  Input: i8042 - add Dritek keyboard extension quirk
  Input: add Tosa keyboard driver
  ...
2008-02-07 12:57:44 -08:00
Richard Purdie
6c152beefb leds: Standardise LED naming scheme
As discussed on LKML some notion of 'function' is needed in
LED naming. This patch adds this to the documentation and
standardises existing LED drivers.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2008-02-07 09:47:00 +00:00
Jeff Garzik
15aafa2f9d Remove pointless casts from void pointers
Mostly in and around irq handlers.

Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: "Luck Tony" <tony.luck@intel.com>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Cc: Karsten Keil <kkeil@suse.de>
Acked-by: "John W. Linville" <linville@tuxdriver.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: David Brownell <david-b@pacbell.net>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Acked-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-02-06 10:41:01 -08:00
Dmitry Torokhov
03366e7b9b Merge branch 'pxa-keypad' 2008-02-06 00:54:05 -05:00
Andrew Morton
c18bab80d1 Input: i8042 - non-x86 build fix
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-02-06 00:48:15 -05:00
Joe Perches
5047fabac1 drivers/input/: Spelling fixes
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
2008-02-03 17:15:20 +02:00
Andre Haupt
17a61cdfc5 jonada720: remove duplicate include
Signed-off-by: Andre Haupt <andre@bitwigglers.org>
Acked-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
2008-02-03 16:08:09 +02:00
Andre Haupt
8340c103d7 bf54x: remove duplicate include
Signed-off-by: Andre Haupt <andre@bitwigglers.org>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
2008-02-03 16:04:56 +02:00
Andre Haupt
f639416325 gameport: remove duplicate include
Signed-off-by: Andre Haupt <andre@bitwigglers.org>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
2008-02-03 16:03:50 +02:00
Takashi Iwai
9004acc70e [ALSA] Remove sound/driver.h
This header file exists only for some hacks to adapt alsa-driver
tree.  It's useless for building in the kernel.  Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it.  This should be really killed in
future.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31 17:29:48 +01:00
Eric Miao
e0f2677f0d Input: pxa27x_keypad - also enable on PXA3xx
Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:59:31 -05:00
Eric Miao
76cb44e1a8 Input: pxa27x_keypad - add debounce_interval to the keypad platform data
Currently, only one debounce_interval is introduced for both direct and
matrix keys. This is true in most cases, although the keypad controller
supports different debounce for direct/matrix keys.

Some platforms do require this to be tuned, instead of the default
reset value of 100ms.

Rotary encoder will always use zero debounce time for now to achieve
certain sensitivity.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:59:23 -05:00
Eric Miao
9c60debd2a Input: pxa27x_keypad - use device resources for I/O memory mapping and IRQ
1. use ioremap() for registers access, this improves the portability
   of the driver (e.g. same IP on different processor with different
   I/O memory range), and make it possible to remove those registers
   definition in pxa-regs.h as PXA is undergoing a clean-up of that
   header file

2. use device specific IRQ instead of hardcoded IRQ_KEYPAD, same
   reason as above

3. clean up the error handling path in _probe()

4. remove DRIVER_NAME and use pdev->name when necessary, we don't
   actually need a constant string literals

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:59:15 -05:00
Eric Miao
62059d9e91 Input: pxa27x_keypad - enable rotary encoders and direct keys
1. Rotary encoder events can be configured either as relative events
   as the legacy code does or as any specified key code, this is
   useful on some platform which uses the rotary keys as
   KEY_{UP/DOWN/LEFT/RIGHT}

2. Add support for direct keys, the corresponding keycodes for each
   direct key can now be specified within the platform data

3. Remove the direct/rotary key detection code from the IRQ handler
   to dedicated functions to improve readability

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:59:03 -05:00
Eric Miao
d7416f9eaa Input: pxa27x_keypad - introduce pxa27x_keypad_config()
Introduce pxa27x_keypad_config() for keypad registers configuration
and remove the reg_kpc, reg_kprec from platform data structure
so that configurations of keypad registers can be centralized to a
single function.

It can also be re-used when resuming.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:58:52 -05:00
Eric Miao
1814db6969 Input: pxa27x_keypad - introduce driver structure and use KEY() to define matrix keys
1. Introduce the "struct pxa27x_keypad" structure for driver specific
    information, such as "struct clk", generated matrix key codes and
    so on

 2. Use KEY() macro to define matrix keys, instead of original 8x8 map
    this makes definition easier with keypad where keys are sparse

 3. Keep a generated array in "struct pxa27x_keypad" for fast lookup

 4. Separate the matrix scan into a dedicated function for readability
    and report only those keys whose state has been changed, instead
    of report all states

 5. Make use of KPAS to decide the faster path if only one key has been
    detected

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:58:37 -05:00
Eric Miao
1a1cd739a4 Input: pxa27x_keypad - remove pin configuration from the driver
The pin configurations will slowly be moved to the board specific code
at initialization thus to make the driver more generic.

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:58:00 -05:00
Eric Miao
0e5f11aa80 Input: pxa27x_keypad - rename the driver (was pxa27x_keyboard)
The controller should really be called keypad, and also align
the naming of functions and structures to use "pxa27x_keypad"
as prefix, instead of "pxakbd".

Signed-off-by: Eric Miao <eric.miao@marvell.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:56:46 -05:00
Jan Engelhardt
cec69c376b Input: constify function pointer tables (seq_operations)
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-31 00:43:32 -05:00
Jiri Kosina
3f79b1e940 Input: i8042 - add Fujitsu-Siemens Amilo Pro 2010 to nomux list
Reported-by: Hans Aschauer <Hans.Aschauer@web.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-30 16:34:52 -05:00
Bruce Duncan
b4d62de162 Input: i8042 - enable DMI quirks on x86-64
If firmware does not implement AUX_LOOP comand in 32 bit mode it
is unlikely to implement it in 64 bit mode. Same goes for active
multiplexing. See:

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

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-30 16:34:34 -05:00
Carlos Corbacho
5799ddb54e Input: i8042 - add Dritek quirk for Acer Aspire 9110
The Acer Aspire 9110 series also requires the Dritek quirk to enable the
extra scancodes.

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-30 16:34:12 -05:00
Richard Purdie
e17bb1de3b Input: add input event to APM event bridge
This patch adds a very simple input power event to APM user suspend
event bridge. Its currently only works for the systems using the
emulated APM driver but could easily be extended to work with anything
with a true APM BIOS too.

This covers a standard embedded system need which is to suspend when the
user presses a suspend button. It leaves options open to system
integrators to ignore (or unload) this code and implement their own more
complex event handling system.

Its hidden behind the EMBEDDED Kconfig option since its only likely to
be of use to embedded style systems. It can be built as a module so the
"hardcoded" policy can easily be removed from the kernel at runtime if
desired too.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-30 16:33:59 -05:00
Dmitry Torokhov
d182c10c84 Input: mousedev - use BIT_MASK instead of BIT
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-30 16:33:40 -05:00
Ingo Molnar
41e191e85a x86: replace outb_p() with udelay(2) in drivers/input/mouse/pc110pad.c
replace outb_p() with udelay(2). This is a real ISA device so it likely
needs this particular delay.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-01-30 13:31:24 +01:00
Richard Purdie
ca4d6cfcee [ARM] 4737/1: Refactor corgi_lcd to improve readability + bugfix
This patch refactors the code in corgi_lcd.c moving it to the board
specific corgi and spitz files where appropriate instead of the
existing ifdef mess which hinders readability.

Fix spitz_get_hsync_len() to call get_hsync_invperiod so pxafb can be
compiled as a module.

The confusing variables which represent the inverse horizintal sync
period are renamed to "invperiod" consistently.

An incorrect comment in corgi_ts.c is also corrected.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2008-01-28 13:13:25 +00:00
Sam Ravnborg
2ad913babd [SPARC64]: Fix section error in sparcspkr
With a sparc64 defconfig modified to set CONFIG_HOTPLUG=n
the following error happened during link of vmlinux:

local symbol 0: discarded in section `.devexit.text' from drivers/built-in.o
local symbol 1: discarded in section `.devexit.text' from drivers/built-in.o

(The error message above is from kbuild.git but it happens in mainline too)

The error happens becase there is a reference from .text/.data to a
function marked __devexit. With CONFIG_HOTPLUG=n all code marked
__devexit are discarded and the linker complains.

It was tracked down to sparcspkr.c which were missing __devexit_p()
around the function pointers.

Unfortunately modpost did not catch this since modpost do not warn
about references from .data to .devexit from variables named *_driver.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-01-21 22:34:31 -08:00
Andre Haupt
e2c75391dd Input: remove duplicate includes
Signed-off-by: Andre Haupt <andre@bitwigglers.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:16:15 -05:00
Dmitry Torokhov
0c1efd3653 Input: remove cdev from input_dev structure
Cdev field was obsolete and provided only for backward compatibility
since conversion of input core from class devices to regular devices.
It is time to remove it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:08 -05:00
Carlos Corbacho
8987fec0de Input: i8042 - add Dritek keyboard extension quirk
Some Wistron based laptops need us to explicitly enable the 'Dritek
keyboard extension' to make their extra keys start generating scancodes.
Originally, this was just confined to older laptops, but a few Acer
laptops have turned up in 2007 that also need this again.

Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:08 -05:00
Dmitry Baryshkov
93e9012f40 Input: add Tosa keyboard driver
Add keyboard support on tosa (Sharp Zaurus SL-6000x).
Largely based on patches by Dirk Opfer.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
Stephen Hemminger
52fe0cdb09 Input: add driver for Fujitsu application buttons
This driver supports the application buttons on some Fujitsu Lifebook
laptops.  It is based on the earlier apanel driver done by Jochen Eisenger,
but with many changes.  The original driver used ioctl's and a separate
user space program (see http://apanel.sourceforge.net).  This driver hooks
into the input subsystem so that the normal keys act as expected without a
daemon.  In addition to buttons, the Mail Led is handled via LEDs class
device.

The driver now supports redefinable keymaps and no longer has to have a DMI
table for all Fujitsu laptops.

I thought about mixing this driver should be integrated into the Fujitsu
laptop extras driver that handles backlight, but rejected the idea because
it wasn't clear if all the Fujitsu laptops supported both.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
David Brownell
fbb38e30e4 Input: ads7846 - stop updating dev->power.power_state
This stops the ads7846 driver from using dev->power.power_state; that field is
deprecated (overdue for removal) and the only reason to update it was to make
the /sys/devices/.../power/state files (now removed) work better.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
Julia Lawall
3b04a61107 Input: drop redundant includes of moduleparam.h
Drop #include <linux/moduleparam.h> in files that also include
linux/module.h, since module.h includes moduleparam.h already.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
Stephen Hemminger
374766bc2a Input: implement proper timer rounding for polled devices
Rounding doesn't matter for the first tick, but we want
succeeding ticks to be aligned on second boundary if poll
interval is large enough.

Also: cancel_rearming_delayed_workqueue is marked as obsolete
in workqueue.h so use cancel_delayed_work_sync.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Acked-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
Dmitry Torokhov
4615e33f43 Input: iforce - don't access input_dev->private directly
input_{get|set}_drvdata() helpers should be used instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
Dmitry Torokhov
a8399c512b Input: i8042 - use synchronize_irq() instead of synchronize_sched()
RT guys advised me that in their kernels synchronize_sched() will not
work to ensure that all IRQ handlers run to their completion and that
synchronize_irq() should be used instead.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:07 -05:00
Dmitry Torokhov
f0b92b961b Input: atkbd - remove unneeded synchronize_sched()
atkbd_disable() provides all necessary synchronization with
atkbd_interrupt().

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:06 -05:00
Dmitry Torokhov
b037b08e59 Input: cobalt_btns - add support for loadable keymaps
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:06 -05:00
Dmitry Torokhov
72341eea6f Input: atlas_btns - add support for loadable keymaps
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:06 -05:00
Dmitry Torokhov
1953ea2d8d Input: keyspan_remote - add support for loadable keymaps
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:06 -05:00
Dmitry Torokhov
f4f37c8ec7 Input: Add proper locking when changing device's keymap
Take dev->event_lock to make sure that we don't race with input_event() and
also force key up event when removing a key from keymap table.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:06 -05:00
Giel de Nijs
554101e3e5 Input: atkbd - properly handle special keys on Dell Latitudes
Most of Fn+F? special keys on (at least) the Dell Latitude laptops don't
generate a hardware key release event so the driver has to generate one.

Signed-off-by: Giel de Nijs <giel@caffeinetrip.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-21 01:11:06 -05:00
Linus Torvalds
03bbe082cf 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: ALPS - fix sync loss on Acer Aspire 5720ZG
  Input: psmouse - fix input_dev leak in lifebook driver
  Input: psmouse - fix potential memory leak in psmouse_connect()
  Input: usbtouchscreen - fix buffer overflow, make more egalax work
  Input: mousedev - handle mice that use absolute coordinates
2008-01-17 15:50:19 -08:00
Dmitry Torokhov
fb49161027 Input: ALPS - fix sync loss on Acer Aspire 5720ZG
The recently added support for Dell Volstro 1400 was causing protocol
synchronization errors on Acer Aspire 5720ZG, fix it.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-17 12:01:58 -05:00
Andres Salomon
653e91d01f Input: psmouse - fix input_dev leak in lifebook driver
The lifebook driver may register a second input device, but it never
unregisters it.  This fixes that.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-17 12:01:51 -05:00
Andres Salomon
746b31a9d4 Input: psmouse - fix potential memory leak in psmouse_connect()
If we successfully call input_register_device() in psmouse_connect()
but sysfs_create_group() fails, we'll enter the error path without
ever having called input_unregister_device() potentially leaking
memory.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-17 12:01:30 -05:00
Daniel Ritz
62aa366d9b Input: usbtouchscreen - fix buffer overflow, make more egalax work
Fix a buffer overflow in mutli-packet handling code.  The overflow can
only happen with eGalax devices and is even there very unlikely (only
non-report packet are affected any only when truncated after the first
byte).

Also changes the mutli-packet handling code not to drop unknown packets,
but rather just drop one byte.  This allows synchronizing on report packets
in the data stream.  It's required for some egalax devices to work at all.

Also remove the pointless 'flags' member of the device struct and set the
version number to 0.6, plus some minor cleanups.

[akpm@linux-foundation.org: coding-style fixes]

Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-17 12:01:18 -05:00
Micah Parrish
6724f93463 Input: mousedev - handle mice that use absolute coordinates
Devices like the HP Integrated Remote Console Virtual Mouse, which are
standard equipment on all Proliant and Integrity servers, produce
absolute coordinates instead of relative coordinates.  This is done to
synchronize the position of the mouse cursor on the client desktop
with the mouse cursor position on the server.  Mousedev is not
designed to pass those absolute events directly to X, but it can
translate them into relative movements.  It currently does this for
tablet like devices and touchpads.  This patch merely tells it to also
include a device with ABS_X, ABS_Y, and mouse buttons in its list of
devices to process input for.

This patch enables the mouse pointer to move when using the remote
console.

Signed-off-by: Micah Parrish <micah.parrish@hp.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
2008-01-17 12:01:04 -05:00
Linus Torvalds
4fd3670eb1 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: improve Kconfig help entries for HP Jornada devices
  Input: pass EV_PWR events to event handlers
  Input: spitzkbd - fix suspend key handling
  gameport: don't export functions that are static inline
  Input: jornada680_kbd - fix default keymap
  Input: Handle EV_PWR type of input caps in input_set_capability.
2008-01-14 09:10:45 -08:00