summaryrefslogtreecommitdiffstats
path: root/include/linux/input.h
Commit message (Collapse)AuthorAgeFilesLines
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-051-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* Input: add KEY_BLUETOOTH and KEY_WLAN definitionsLennart Poettering2006-09-191-0/+3
| | | | | | | | Some laptops have separate "rfkill" buttons for disabling/enabling Bluetooth and WLAN. Signed-off-by: Lennart Poettering <mzxreary@0pointer.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add new BUS_VIRTUAL bus typeMichael Hanselmann2006-09-191-0/+1
| | | | | | | | | | BUS_VIRTUAL can be used when creating virtual devices using uinput driver. Note that when uinput is used to drive a real piece of hardware "real" bus type (such as BUS_USB, BUS_BLUETOOTH) should be specified. Signed-off-by: Michael Hanselmann <linux-kernel@hansmi.ch> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: make input_register_handler() return error codesDmitry Torokhov2006-09-141-1/+1
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: remove cruft that was needed for transition to sysfsDmitry Torokhov2006-09-141-9/+0
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: constify input coreDmitry Torokhov2006-09-141-5/+5
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: update the force feedback documentationAnssi Hannula2006-07-191-53/+122
| | | | | Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: drop remnants of the old force-feedback interfaceAnssi Hannula2006-07-191-8/+0
| | | | | Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: unified force feedback support for memoryless devicesAnssi Hannula2006-07-191-0/+3
| | | | | | | | Consolidate core implementing memoryless devices in one module; added support for gain and envelopes and periodic => rumble conversion. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: implement new force feedback interfaceAnssi Hannula2006-07-191-0/+61
| | | | | | | | | | | | | | | | | Implement a new force feedback interface, in which all non-driver-specific operations are separated to a common module. This includes handling effect type validations, locking, etc. The effects are now file descriptor specific instead of the previous strange half-process half-fd specific behaviour. The effect memory of devices is not emptied if the root user opens and closes the device while another user is using effects. This is a minor change and most likely no force feedback aware programs are affected by this negatively. Otherwise the userspace interface is left unaltered. Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: introduce input_inject_event() functionDmitry Torokhov2006-07-061-0/+1
| | | | | | | | | | Create input_inject_event() function which is to be used by input handlers as opposed to input_event() which is reserved for drivers implementing input devices. The difference is that if device is "grabbed" by some process input_inject_event() will ignore events unless sent from the handle that is currently owns the device. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add start() method to input handlersDmitry Torokhov2006-07-061-0/+21
| | | | | | | | | The new start() method is called immediately after connect() and also when "grabbed" device is released by its owner. This will allow input handlers to re-synchronize state of once-grabbed device with the rest of devices. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: remove accept method from input_devDmitry Torokhov2006-07-061-2/+0
| | | | | | | This method used to enforce exclusive access to iforce devices, but presenlty there are no known users of this method. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: fix misspelling of Hangeul keyJerome Pinot2006-06-261-1/+2
| | | | | | | | | | Fix a mispelling of the korean alphabet name in the input subsystem. See http://en.wikipedia.org/wiki/Hangeul#Names for more details. KEY_HANGUEL left to not break people Signed-off-by: Jerome Pinot <ngc891@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: reset name, phys and uniq when unregisteringDmitry Torokhov2006-06-261-6/+1
| | | | | | | | | | Name, phys and uniq are quite often constant strings in moules implementing particular input device. If a module unregisters input device and then gets unloaded, the device could still be present in memory (pinned via sysfs), but aforementioned members would point to some random memory. Set them all to NULL when unregistering so sysfs handlers won't try dereferencing them. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge git://git.infradead.org/hdrcleanup-2.6Linus Torvalds2006-06-201-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.infradead.org/hdrcleanup-2.6: (63 commits) [S390] __FD_foo definitions. Switch to __s32 types in joystick.h instead of C99 types for consistency. Add <sys/types.h> to headers included for userspace in <linux/input.h> Move inclusion of <linux/compat.h> out of user scope in asm-x86_64/mtrr.h Remove struct fddi_statistics from user view in <linux/if_fddi.h> Move user-visible parts of drivers/s390/crypto/z90crypt.h to include/asm-s390 Revert include/media changes: Mauro says those ioctls are only used in-kernel(!) Include <linux/types.h> and use __uXX types in <linux/cramfs_fs.h> Use __uXX types in <linux/i2o_dev.h>, include <linux/ioctl.h> too Remove private struct dx_hash_info from public view in <linux/ext3_fs.h> Include <linux/types.h> and use __uXX types in <linux/affs_hardblocks.h> Use __uXX types in <linux/divert.h> for struct divert_blk et al. Use __u32 for elf_addr_t in <asm-powerpc/elf.h>, not u32. It's user-visible. Remove PPP_FCS from user view in <linux/ppp_defs.h>, remove __P mess entirely Use __uXX types in user-visible structures in <linux/nbd.h> Don't use 'u32' in user-visible struct ip_conntrack_old_tuple. Use __uXX types for S390 DASD volume label definitions which are user-visible S390 BIODASDREADCMB ioctl should use __u64 not u64 type. Remove unneeded inclusion of <linux/time.h> from <linux/ufs_fs.h> Fix private integer types used in V4L2 ioctls. ... Manually resolve conflict in include/linux/mtd/physmap.h
| * Add <sys/types.h> to headers included for userspace in <linux/input.h>David Woodhouse2006-06-011-0/+1
| | | | | | | | | | Signed-off-by: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Vojtech Pavlik <vojtech@suse.cz>
* | Input: change from numbered to named switchesRichard Purdie2006-05-291-8/+3
| | | | | | | | | | | | | | | | Remove the numbered SW_* entries from the input system and assign names to the existing users. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: add KEY_BATTERY keycodeMatthew Garrett2006-05-291-0/+2
|/ | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: ressurect EVIOCGREP and EVIOCSREPDmitry Torokhov2006-04-291-0/+2
| | | | | | | | | While writing to an event device allows to set repeat rate for an individual input device there is no way to retrieve current settings so we need to ressurect EVIOCGREP. Also ressurect EVIOCSREP so we have a symmetrical interface. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: move input_device_id to mod_devicetable.hDmitry Torokhov2006-04-261-51/+53
| | | | Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: allow passing NULL to input_free_device()Dmitry Torokhov2006-04-261-1/+2
| | | | | | Many drivers rely on input_free_device() behaving like kfree(). Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add support for Braille devicesSamuel Thibault2006-04-021-0/+9
| | | | | | | | | | - Add KEY_BRL_* input keys and K_BRL_* keycodes; - Add emulation of how braille keyboards usually combine braille dots to the console keyboard driver; - Add handling of unicode U+28xy diacritics. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Manual merge with Linus.Dmitry Torokhov2006-04-021-1/+1
|\ | | | | | | | | | | | | Conflicts: arch/powerpc/kernel/setup-common.c drivers/input/keyboard/hil_kbd.c drivers/input/mouse/hil_ptr.c
| * [PATCH] mark f_ops const in the inodeArjan van de Ven2006-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | Mark the f_ops members of inodes as const, as well as fix the ripple-through this causes by places that copy this f_ops and then "do stuff" with it. Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Input: fix input_free_device() implementationDmitry Torokhov2006-03-141-6/+6
| | | | | | | | | | | | | | | | | | | | input_free_device can't just call kfree because if input_register_device fails after successfully registering corresponding class device there is a chance that someone could get a reference to it. We need to use input_put_device() to make sure that we don't delete input device until last reference to it was dropped. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: input core - semaphore to mutex conversionJes Sorensen2006-02-191-1/+1
|/ | | | | | | Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* [PATCH] Input: fix add modalias support build errorRusty Russell2006-01-041-1/+1
| | | | | | | | | | | | Fix build when scripts/mod/file2alias.c includes linux/input.h, which tries to include /usr/include/linux/mod_devicetable.h: In file included from scripts/mod/file2alias.c:40: include/linux/input.h:21:35: linux/mod_devicetable.h: No such file or directory make[2]: *** [scripts/mod/file2alias.o] Error 1 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [PATCH] Input: add modalias supportRusty Russell2006-01-041-38/+41
| | | | | | | | | | | | | | | | Here's the patch for modalias support for input classes. It uses comma-separated numbers, and doesn't describe all the potential keys (no module currently cares, and that would make the strings huge). The changes to input.h are to move the definitions needed by file2alias outside __KERNEL__. I chose not to move those definitions to mod_devicetable.h, because there are so many that it might break compile of something else in the kernel. The rest is fairly straightforward. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> CC: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Input: do not register statically allocated devicesDmitry Torokhov2005-11-021-1/+1
| | | | | | | | Do not register statically allocated input devices to prevent OOPS when attaching input interfaces since it requires class device to be properly initialized. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6Linus Torvalds2005-10-281-2/+24
|\
| * [PATCH] INPUT: rename input_dev_class to input_class to be correct.Greg Kroah-Hartman2005-10-281-1/+1
| | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * [PATCH] INPUT: remove the input_class structure, as it is unused.Greg Kroah-Hartman2005-10-281-1/+0
| | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * [PATCH] INPUT: export input_dev_class so that input drivers can use it.Greg Kroah-Hartman2005-10-281-0/+1
| | | | | | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * [PATCH] Input: prepare to sysfs integrationDmitry Torokhov2005-10-281-1/+23
| | | | | | | | | | | | | | | | | | | | | | Input: prepare to sysfs integration Add struct class_device to input_dev; add input_allocate_dev() to dynamically allocate input devices; dynamically allocated devices are automatically registered with sysfs. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | [PARISC] Update parisc specific input code from parisc treeMatthew Wilcox2005-10-211-0/+1
|/ | | | | | | | | | | | | | | | Update drivers to new input layer changes. Signed-off-by: Helge Deller <deller@parisc-linux.org> Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Reorder code in gscps2_interrupt() and only enable ports when opened. This fixes issues with hangs booting an SMP kernel on my C360. Previously serio_interrupt() could be called before the lock in struct serio was initialised. Signed-off-by: Richard Hirst <rhirst@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
* Manual merge with LinusDmitry Torokhov2005-09-091-0/+25
|\
| * [PATCH] Input: Add a new switch event typeRichard Purdie2005-09-071-0/+25
| | | | | | | | | | | | | | | | | | | | The corgi keyboard has need of a switch event type with slightly type to the input system as recommended by the input maintainer. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Cc: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Input: HID - add more consumer usagesVojtech Pavlik2005-09-051-0/+8
|/ | | | | | | | Extend mapping of the consumer usage page in hid-input.c to handle more cases appearing on new USB keyboards. Signed-off-by: Vojtech Pavlik <vojtech@suse.cz> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: make name, phys and uniq be 'const char *' because onceDmitry Torokhov2005-06-301-3/+3
| | | | | | set noone should attempt to change them. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/dtor/input.git manuallyLinus Torvalds2005-06-271-0/+4
|\ | | | | | | Some manual fixups required due to clashes with the PF_FREEZE cleanups.
| * Input: add semaphore and user count to input_dev structure;Dmitry Torokhov2005-05-291-0/+4
| | | | | | | | | | | | | | | | serialize open and close calls and ensure that device's open and close methods are only called when first user opens it or last user closes it. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | [PATCH] INPUT: move to use the new class code, instead of class_simplegregkh@suse.de2005-06-201-1/+1
|/ | | | Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [PATCH] macintosh/adbhid.c: adb buttons support for aluminium PowerBook G4Andreas Jaggi2005-05-011-0/+5
| | | | | | | | | | | This patch adds support for the special adb buttons of the aluminium PowerBook G4. Signed-off-by: Andreas Jaggi <andreas.jaggi@waterwave.ch> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds2005-04-161-0/+1016
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
OpenPOWER on IntegriCloud